=== modified file 'paramiko/sftp_server.py' --- paramiko/sftp_server.py 2008-03-23 02:36:16 +0000 +++ paramiko/sftp_server.py 2008-05-07 16:29:50 +0000 @@ -22,6 +22,7 @@ import os import errno +import locale from Crypto.Hash import MD5, SHA from paramiko.common import * @@ -45,7 +46,7 @@ Use L{Transport.set_subsystem_handler} to activate this class. """ - def __init__(self, channel, name, server, sftp_si=SFTPServerInterface, *largs, **kwargs): + def __init__(self, channel, name, server, sftp_si=SFTPServerInterface, language=None, *largs, **kwargs): """ The constructor for SFTPServer is meant to be called from within the L{Transport} as a subsystem handler. C{server} and any additional @@ -62,6 +63,9 @@ @param sftp_si: a subclass of L{SFTPServerInterface} to use for handling individual requests. @type sftp_si: class + @param language: RFC 1766-compliant language code; errors given to the + client should be in this language. + @type language: str """ BaseSFTP.__init__(self) SubsystemHandler.__init__(self, channel, name, server) @@ -73,6 +77,11 @@ self.file_table = { } self.folder_table = { } self.server = sftp_si(server, *largs, **kwargs) + if language == None: + language = locale.getlocale()[0] + if language in (None, 'C'): + language = '' + self.language = language def _log(self, level, msg): super(SFTPServer, self)._log(level, "[chan " + self.sock.get_name() + "] " + msg) @@ -204,7 +213,7 @@ desc = SFTP_DESC[code] except IndexError: desc = 'Unknown' - self._response(request_number, CMD_STATUS, code, desc) + self._response(request_number, CMD_STATUS, code, desc, self.language) def _open_folder(self, request_number, path): resp = self.server.list_folder(path)