| Index: grit/gather/interface.py
 | 
| ===================================================================
 | 
| --- grit/gather/interface.py	(revision 0)
 | 
| +++ grit/gather/interface.py	(revision 0)
 | 
| @@ -0,0 +1,108 @@
 | 
| +#!/usr/bin/python2.4
 | 
| +# Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
 | 
| +# Use of this source code is governed by a BSD-style license that can be
 | 
| +# found in the LICENSE file.
 | 
| +
 | 
| +'''Interface for all gatherers.
 | 
| +'''
 | 
| +
 | 
| +
 | 
| +from grit import clique
 | 
| +
 | 
| +
 | 
| +class GathererBase(object):
 | 
| +  '''Interface for all gatherer implementations.  Subclasses must implement
 | 
| +  all methods that raise NotImplemented.'''
 | 
| +
 | 
| +  def __init__(self):
 | 
| +    # A default uberclique that is local to this object.  Users can override
 | 
| +    # this with the uberclique they are using.
 | 
| +    self.uberclique = clique.UberClique()
 | 
| +    # Indicates whether this gatherer is a skeleton gatherer, in which case
 | 
| +    # we should not do some types of processing on the translateable bits.
 | 
| +    self.is_skeleton = False
 | 
| +
 | 
| +  def SetUberClique(self, uberclique):
 | 
| +    '''Overrides the default uberclique so that cliques created by this object
 | 
| +    become part of the uberclique supplied by the user.
 | 
| +    '''
 | 
| +    self.uberclique = uberclique
 | 
| +
 | 
| +  def SetSkeleton(self, is_skeleton):
 | 
| +    self.is_skeleton = is_skeleton
 | 
| +
 | 
| +  def IsSkeleton(self):
 | 
| +    return self.is_skeleton
 | 
| +
 | 
| +  def Parse(self):
 | 
| +    '''Parses the contents of what is being gathered.'''
 | 
| +    raise NotImplementedError()
 | 
| +
 | 
| +  def GetText(self):
 | 
| +    '''Returns the text of what is being gathered.'''
 | 
| +    raise NotImplementedError()
 | 
| +
 | 
| +  def GetTextualIds(self):
 | 
| +    '''Returns the mnemonic IDs that need to be defined for the resource
 | 
| +    being gathered to compile correctly.'''
 | 
| +    return []
 | 
| +
 | 
| +  def GetCliques(self):
 | 
| +    '''Returns the MessageClique objects for all translateable portions.'''
 | 
| +    return []
 | 
| +
 | 
| +  def Translate(self, lang, pseudo_if_not_available=True,
 | 
| +                skeleton_gatherer=None, fallback_to_english=False):
 | 
| +    '''Returns the resource being gathered, with translateable portions filled
 | 
| +    with the translation for language 'lang'.
 | 
| +
 | 
| +    If pseudo_if_not_available is true, a pseudotranslation will be used for any
 | 
| +    message that doesn't have a real translation available.
 | 
| +
 | 
| +    If no translation is available and pseudo_if_not_available is false,
 | 
| +    fallback_to_english controls the behavior.  If it is false, throw an error.
 | 
| +    If it is true, use the English version of the message as its own
 | 
| +    "translation".
 | 
| +
 | 
| +    If skeleton_gatherer is specified, the translation will use the nontranslateable
 | 
| +    parts from the gatherer 'skeleton_gatherer', which must be of the same type
 | 
| +    as 'self'.
 | 
| +
 | 
| +    If fallback_to_english
 | 
| +
 | 
| +    Args:
 | 
| +      lang: 'en'
 | 
| +      pseudo_if_not_available: True | False
 | 
| +      skeleton_gatherer: other_gatherer
 | 
| +      fallback_to_english: True | False
 | 
| +
 | 
| +    Return:
 | 
| +      e.g. 'ID_THIS_SECTION TYPE\n...BEGIN\n  "Translated message"\n......\nEND'
 | 
| +
 | 
| +    Raises:
 | 
| +      grit.exception.NotReady() if used before Parse() has been successfully
 | 
| +      called.
 | 
| +      grit.exception.NoSuchTranslation() if 'pseudo_if_not_available' and
 | 
| +      fallback_to_english are both false and there is no translation for the
 | 
| +      requested language.
 | 
| +    '''
 | 
| +    raise NotImplementedError()
 | 
| +
 | 
| +  def FromFile(rc_file, extkey=None, encoding = 'cp1252'):
 | 
| +    '''Loads the resource from the file 'rc_file'.  Optionally an external key
 | 
| +    (which gets passed to the gatherer's constructor) can be specified.
 | 
| +
 | 
| +    If 'rc_file' is a filename, it will be opened for reading using 'encoding'.
 | 
| +    Otherwise the 'encoding' parameter is ignored.
 | 
| +
 | 
| +    Args:
 | 
| +      rc_file: file('') | 'filename.rc'
 | 
| +      extkey: e.g. 'ID_MY_DIALOG'
 | 
| +      encoding: 'utf-8'
 | 
| +
 | 
| +    Return:
 | 
| +      grit.gather.interface.GathererBase subclass
 | 
| +    '''
 | 
| +    raise NotImplementedError()
 | 
| +  FromFile = staticmethod(FromFile)
 | 
| +
 | 
| 
 | 
| Property changes on: grit/gather/interface.py
 | 
| ___________________________________________________________________
 | 
| Added: svn:eol-style
 | 
|    + LF
 | 
| 
 | 
| 
 |