# File kwartz.rb, line 4145
        def self.translate(plogic_str, lang, toppings)
            unless Kwartz::Translator.registered?(lang)
                raise InvalidLanguageError.new(lang)
            end
            scanner    = Kwartz::Scanner.new(plogic_str, toppings)
            parser     = Kwartz::Parser.new(scanner, toppings)
            translator = Kwartz::Translator.instance(lang, toppings)
            nodelist   = parser.parse()
            output     = translator.translate_all(nodelist)
            return output
        end