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 |