| Index: grit/node/message.py
|
| diff --git a/grit/node/message.py b/grit/node/message.py
|
| index bb0dd4d816194de8f21d74e93cb4f4492cda2a12..1f63bdada18637e27a62e349490605925a56ad0d 100644
|
| --- a/grit/node/message.py
|
| +++ b/grit/node/message.py
|
| @@ -56,9 +56,10 @@ class MessageNode(base.ContentNode):
|
| def _IsValidAttribute(self, name, value):
|
| if name not in ['name', 'offset', 'translateable', 'desc', 'meaning',
|
| 'internal_comment', 'shortcut_groups', 'custom_type',
|
| - 'validation_expr', 'use_name_for_id']:
|
| + 'validation_expr', 'use_name_for_id', 'sub_variable']:
|
| return False
|
| - if name == 'translateable' and value not in ['true', 'false']:
|
| + if (name in ('translateable', 'sub_variable') and
|
| + value not in ['true', 'false']):
|
| return False
|
| return True
|
|
|
| @@ -67,14 +68,15 @@ class MessageNode(base.ContentNode):
|
|
|
| def DefaultAttributes(self):
|
| return {
|
| - 'translateable' : 'true',
|
| + 'custom_type' : '',
|
| 'desc' : '',
|
| - 'meaning' : '',
|
| 'internal_comment' : '',
|
| + 'meaning' : '',
|
| 'shortcut_groups' : '',
|
| - 'custom_type' : '',
|
| - 'validation_expr' : '',
|
| + 'sub_variable' : 'false',
|
| + 'translateable' : 'true',
|
| 'use_name_for_id' : 'false',
|
| + 'validation_expr' : '',
|
| }
|
|
|
| def GetTextualIds(self):
|
| @@ -158,6 +160,14 @@ class MessageNode(base.ContentNode):
|
| description=description_or_id,
|
| meaning=self.attrs['meaning'],
|
| assigned_id=assigned_id)
|
| + self.InstallMessage(message)
|
| +
|
| + def InstallMessage(self, message):
|
| + '''Sets this node's clique from a tclib.Message instance.
|
| +
|
| + Args:
|
| + message: A tclib.Message.
|
| + '''
|
| self.clique = self.UberClique().MakeClique(message, self.IsTranslateable())
|
| for group in self.shortcut_groups_:
|
| self.clique.AddToShortcutGroup(group)
|
| @@ -168,6 +178,16 @@ class MessageNode(base.ContentNode):
|
| self.clique.SetCustomType(
|
| clique.OneOffCustomType(self.attrs['validation_expr']))
|
|
|
| + def SubstituteMessages(self, substituter):
|
| + '''Applies substitution to this message.
|
| +
|
| + Args:
|
| + substituter: a grit.util.Substituter object.
|
| + '''
|
| + message = substituter.SubstituteMessage(self.clique.GetMessage())
|
| + if message is not self.clique.GetMessage():
|
| + self.InstallMessage(message)
|
| +
|
| def GetCliques(self):
|
| if self.clique:
|
| return [self.clique]
|
| @@ -190,6 +210,10 @@ class MessageNode(base.ContentNode):
|
| else:
|
| return self.attrs['offset']
|
|
|
| + def ExpandVariables(self):
|
| + '''We always expand variables on Messages.'''
|
| + return True
|
| +
|
| def GetDataPackPair(self, lang, encoding):
|
| '''Returns a (id, string) pair that represents the string id and the string
|
| in utf8. This is used to generate the data pack data file.
|
|
|