| Index: grit/gather/interface.py
|
| diff --git a/grit/gather/interface.py b/grit/gather/interface.py
|
| deleted file mode 100644
|
| index c277d379b3cc98b87049ff1fe07fe9d4c88e2332..0000000000000000000000000000000000000000
|
| --- a/grit/gather/interface.py
|
| +++ /dev/null
|
| @@ -1,171 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# Copyright (c) 2012 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.
|
| -'''
|
| -
|
| -
|
| -import os.path
|
| -import types
|
| -
|
| -from grit import clique
|
| -from grit import util
|
| -
|
| -
|
| -class GathererBase(object):
|
| - '''Interface for all gatherer implementations. Subclasses must implement
|
| - all methods that raise NotImplemented.'''
|
| -
|
| - def __init__(self, rc_file, extkey=None, encoding='cp1252', is_skeleton=False):
|
| - '''Initializes the gatherer object's attributes, but does not attempt to
|
| - read the input file.
|
| -
|
| - Args:
|
| - rc_file: The 'file' attribute of the <structure> node (usually the
|
| - relative path to the source file).
|
| - extkey: e.g. 'ID_MY_DIALOG'
|
| - encoding: e.g. 'utf-8'
|
| - is_skeleton: Indicates whether this gatherer is a skeleton gatherer, in
|
| - which case we should not do some types of processing on the
|
| - translateable bits.
|
| - '''
|
| - self.rc_file = rc_file
|
| - self.extkey = extkey
|
| - self.encoding = encoding
|
| - # 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 = is_skeleton
|
| - # Stores the grd node on which this gatherer is running. This allows
|
| - # evaluating expressions.
|
| - self.grd_node = None
|
| -
|
| - def SetAttributes(self, attrs):
|
| - '''Sets node attributes used by the gatherer.
|
| -
|
| - By default, this does nothing. If special handling is desired, it should be
|
| - overridden by the child gatherer.
|
| -
|
| - Args:
|
| - attrs: The mapping of node attributes.
|
| - '''
|
| - pass
|
| -
|
| - def SetDefines(self, defines):
|
| - '''Sets global defines used by the gatherer.
|
| -
|
| - By default, this does nothing. If special handling is desired, it should be
|
| - overridden by the child gatherer.
|
| -
|
| - Args:
|
| - defines: The mapping of define values.
|
| - '''
|
| - pass
|
| -
|
| - def SetGrdNode(self, node):
|
| - '''Sets the grd node on which this gatherer is running.
|
| - '''
|
| - self.grd_node = node
|
| -
|
| - 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 Parse(self):
|
| - '''Reads and parses the contents of what is being gathered.'''
|
| - raise NotImplementedError()
|
| -
|
| - def GetData(self, lang, encoding):
|
| - '''Returns the data to be added to the DataPack for this node or None if
|
| - this node does not add a DataPack entry.
|
| - '''
|
| - return None
|
| -
|
| - 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 GetInputPath(self):
|
| - return self.rc_file
|
| -
|
| - def GetHtmlResourceFilenames(self):
|
| - """Returns a set of all filenames inlined by this gatherer."""
|
| - 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 SubstituteMessages(self, substituter):
|
| - '''Applies substitutions to all messages in the gatherer.
|
| -
|
| - Args:
|
| - substituter: a grit.util.Substituter object.
|
| - '''
|
| - pass
|
| -
|
| - def SetFilenameExpansionFunction(self, fn):
|
| - '''Sets a function for rewriting filenames before gathering.'''
|
| - pass
|
| -
|
| - # TODO(benrg): Move this elsewhere, since it isn't part of the interface.
|
| - def _LoadInputFile(self):
|
| - '''A convenience function for subclasses that loads the contents of the
|
| - input file.
|
| - '''
|
| - if isinstance(self.rc_file, types.StringTypes):
|
| - path = self.GetInputPath()
|
| - # Hack: some unit tests supply an absolute path and no root node.
|
| - if not os.path.isabs(path):
|
| - path = self.grd_node.ToRealPath(path)
|
| - return util.ReadFile(path, self.encoding)
|
| - else:
|
| - return self.rc_file.read()
|
|
|