spambayes/spambayes i18n.py,1.3,1.4

"Tony Meyer" <[email protected]>
Newsgroups gmane.mail.spam.spambayes.cvs
Message-ID <[email protected]>
Update of /cvsroot/spambayes/spambayes/spambayes
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10798/spambayes

Modified Files:
	i18n.py 
Log Message:
Get things working when we are running frozen.

Basically this handles the move where the languages directory became a subpackage
 of spambayes.

Index: i18n.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/spambayes/i18n.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** i18n.py	20 Jan 2005 03:49:33 -0000	1.3
--- i18n.py	7 Apr 2005 04:19:45 -0000	1.4
***************
*** 30,63 ****
  ## Set language environment for gettext and for dynamic load of dialogs.
  ##
! ## Our directory layout is:
  ##   spambayes
! ##       spambayes
! ##           i18n.py             <--- this file
! ##       languages               <--- the directory for lang packs
  ##           es                  <-- generic language data
! ##               DIALOGS
! ##               LC_MESSAGES
! ##               __init__.py     <-- resourcepackage __init__.py
! ##              ui.html          <-- web interface translation
  ##           es_ES               <-- specific language/country data.
! ##               DIALOGS         <-- resource dialogs
! ##               LC_MESSAGES     <-- gettext messages files
! ##               __init__.py     <-- resourcepackage __init__.py
! ##              ui.html          <-- web interface translation
  ##           zn
  ##           zn_TW
- ##       Outlook2000
- ##       utilities
  ##       ..etc..
  
  
  class LanguageManager:
!     def __init__(self, directory=os.path.dirname(__file__)):
!         """Initialisation.
! 
!         'directory' is the parent directory of the 'languages'
!         directory.  It defaults to the directory of this module."""
          self.current_langs_codes = []
-         self.local_dir = os.path.join(directory, "..", "languages")
          self._sys_path_modifications = []
  
--- 30,102 ----
  ## Set language environment for gettext and for dynamic load of dialogs.
  ##
! ## Our directory layout with source is:
  ##   spambayes
! ##       spambayes (or spambayes.modules with the binary)
! ##           i18n.py                 <-- this file
! ##           languages               <-- the directory for lang packs
! ##               es                  <-- generic language data
! ##                   DIALOGS
! ##                   LC_MESSAGES     <-- gettext message files
! ##                   __init__.py     <-- resourcepackage __init__.py
! ##                  ui.html          <-- web interface translation
! ##               es_ES               <-- specific language/country data.
! ##                   DIALOGS         <-- resource dialogs
! ##                   LC_MESSAGES     <-- gettext message files
! ##                   __init__.py     <-- resourcepackage __init__.py
! ##                  ui.html          <-- web interface translation
! ##               zn
! ##               zn_TW
! ##       Outlook2000
! ##       utilities
! ##       ..etc..
! ##
! ## Our directory layout with the binaries is:
! ##   lib
! ##       spambayes.modules
! ##           i18n.py                 <-- this file
! ##           languages               <-- the directory for lang packs
! ##               es                  <-- generic language data
! ##                   DIALOGS
! ##                   __init__.py     <-- resourcepackage __init__.py
! ##                  ui.html          <-- web interface translation
! ##               es_ES               <-- specific language/country data.
! ##                   DIALOGS         <-- resource dialogs
! ##                   __init__.py     <-- resourcepackage __init__.py
! ##                  ui.html          <-- web interface translation
! ##               zn
! ##               zn_TW
! ##       languages
  ##           es                  <-- generic language data
! ##               LC_MESSAGES     <-- gettext message files
  ##           es_ES               <-- specific language/country data.
! ##               LC_MESSAGES     <-- gettext message files
  ##           zn
  ##           zn_TW
  ##       ..etc..
+ ##
+ ## A distutils installation will not currently work.  I don't know
+ ## where to put the .mo files, so setup.py ignores them.
  
+ if hasattr(sys, "frozen"):
+     # LC_MESSAGES are harder to find.
+     if sys.frozen == "dll":
+         # Outlook
+         import win32api
+         this_filename = win32api.GetModuleFileName(sys.frozendllhandle)
+     else:
+         # Not Outlook
+         this_filename = __file__
+     LC_DIR = os.path.dirname(os.path.dirname(this_filename))
+ else:
+     try:
+         this_filename = os.path.abspath(__file__)
+     except NameError: # no __file__ - means Py2.2 and __name__=='__main__'
+         this_filename = os.path.abspath(sys.argv[0])
+     LC_DIR = os.path.dirname(this_filename)
+     
  
  class LanguageManager:
!     def __init__(self):
          self.current_langs_codes = []
          self._sys_path_modifications = []
  
***************
*** 99,105 ****
          current language."""
          for language in self.current_langs_codes:
!             moduleName = 'languages.%s.i18n_ui_html' % (language, )
              try:
!                 module = __import__(moduleName, {}, {}, ('languages',
                                                           language))
              except ImportError:
--- 138,144 ----
          current language."""
          for language in self.current_langs_codes:
!             moduleName = 'spambayes.languages.%s.i18n_ui_html' % (language, )
              try:
!                 module = __import__(moduleName, {}, {}, ('spambayes.languages',
                                                           language))
              except ImportError:
***************
*** 115,119 ****
      def _install_gettext(self):
          """Set the gettext specific environment."""
!         lang = translation("messages", self.local_dir,
                              self.current_langs_codes, fallback=True)
          lang.install()
--- 154,158 ----
      def _install_gettext(self):
          """Set the gettext specific environment."""
!         lang = translation("messages", LC_DIR,
                              self.current_langs_codes, fallback=True)
          lang.install()
***************
*** 127,134 ****
          self._clear_syspath()
          for lcode in self.current_langs_codes:
!             code_and_country = os.path.join(self.local_dir, lcode,
                                              'DIALOGS')
!             code_only = os.path.join(self.local_dir, lcode.split("_")[0],
!                                      'DIALOGS')
              if code_and_country not in sys.path:
                  sys.path.append(code_and_country)
--- 166,172 ----
          self._clear_syspath()
          for lcode in self.current_langs_codes:
!             code_and_country = os.path.join(LC_DIR, "languages", lcode,
                                              'DIALOGS')
!             code_only = os.path.join(LC_DIR, lcode.split("_")[0], 'DIALOGS')
              if code_and_country not in sys.path:
                  sys.path.append(code_and_country)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.