# File lib/linguistics.rb, line 139
    def self::install_language_proxy( klass, languages=DefaultLanguages )
        languages.replace( DefaultLanguages ) if languages.empty?

        # Create an languageProxy class for each language specified
        languages.each do |lang|
            # $stderr.puts "Extending the %p class with %p" %
            #    [ klass, lang ] if $DEBUG

            # Load the language module (skipping to the next if it's already
            # loaded), make a languageProxy class that delegates to it, and
            # figure out what the languageProxy method will be called.
            mod = load_language( lang.to_s.downcase )
            ifaceMeth = mod.name.downcase.sub( /.*:/, '' )
            languageProxyClass = make_language_proxy( mod )

            # Install a hash for languageProxy classes and an accessor for the
            # hash if it's not already present.
            if !klass.class_variables.include?( "@@__languageProxy_class" )
                klass.module_eval %{
                    @@__languageProxy_class = {}
                    def self::__languageProxy_class; @@__languageProxy_class; end
                }, __FILE__, __LINE__
            end

            # Merge the current languageProxy into the hash
            klass.__languageProxy_class.merge!( ifaceMeth => languageProxyClass )

            # Set the language-code proxy method for the class unless it has one
            # already
            unless klass.instance_methods(true).include?( ifaceMeth )
                klass.module_eval %{
                    def #{ifaceMeth}
                        @__#{ifaceMeth}_languageProxy ||=
                            self.class.__languageProxy_class["#{ifaceMeth}"].
                            new( self )
                    end
                }, __FILE__, __LINE__
            end
        end
    end