From: Chris W. <la...@us...> - 2005-02-25 05:38:12
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24219 Modified Files: Request.pm Log Message: rename find_language() to assign_languages(), and document; get rid of the custom language class thing (yuck) Index: Request.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Request.pm,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** Request.pm 17 Feb 2005 05:01:55 -0000 1.51 --- Request.pm 25 Feb 2005 05:37:45 -0000 1.52 *************** *** 348,353 **** } ! sub find_language { ! my ( $self ) = @_; my @lang = (); my $lang_config = CTX->lookup_language_config; --- 348,361 ---- } ! sub assign_languages { ! my ( $self, @assigned ) = @_; ! if ( scalar @assigned ) { ! delete $self->{_lang_handle}; # clear out cache ! $self->{_user_language} = \@assigned; ! $log->is_debug && ! $log->debug( "Request property 'language' assigned to: ", ! join( ', ', @assigned ) ); ! return; ! } my @lang = (); my $lang_config = CTX->lookup_language_config; *************** *** 384,393 **** } ! if ( my @clubber_lang = $self->_find_custom_languages( @lang ) ) { ! $self->{_user_language} = \@clubber_lang; ! } ! else { ! $self->{_user_language} = \@lang; ! } $log->is_debug && $log->debug( "Request property 'language' now: ", --- 392,396 ---- } ! $self->{_user_language} = \@lang; $log->is_debug && $log->debug( "Request property 'language' now: ", *************** *** 419,444 **** } - sub _find_custom_languages { - my ( $self, @oi_lang ) = @_; - my $lang_info = CTX->lookup_language_config; - return unless ( $lang_info->{custom_language_id_class} ); - $log ||= get_logger( LOG_REQUEST ); - - my $lang_class = $lang_info->{custom_language_id_class}; - $log->is_debug && - $log->debug( "Running custom lang ID class '$lang_class'" ); - my @new_langs = eval { - $lang_class->identify_languages( @oi_lang ) - }; - if ( $@ ) { - $log->error( "Failed to get custom languages from ", - "'$lang_class': $@" ); - return (); - } - else { - return @new_langs; - } - } - sub language_handle { my ( $self ) = @_; --- 422,425 ---- *************** *** 706,709 **** --- 687,724 ---- localized messages. + B<assign_languages( [ @assigned ] )> + + Typically called only by an adapter or the authentication classes + which use the default behavior described below. But you can also + assign languages directly to the request object with this: + + $request->assign_languages( 'en', 'jp', 'sv' ); + + If you do assign languages directly any language handle previously + cached for the request is removed. + + Otherwise we find the language from one of: + + =over 4 + + =item * + + the user (if logged in) + + =item * + + session (from 'language' key); + + =item * + + parameter value (listed in server configuration of + 'language.choice_param_name'; + + =item * + + or default language set in 'language.default_language'. + + =back + =head2 Properties |