Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(178)

Side by Side Diff: grit/gather/admin_template.py

Issue 1442863002: Remove contents of grit's SVN repository. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « grit/gather/__init__.py ('k') | grit/gather/admin_template_unittest.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 '''Gatherer for administrative template files.
7 '''
8
9 import re
10
11 from grit.gather import regexp
12 from grit import exception
13 from grit import lazy_re
14
15
16 class MalformedAdminTemplateException(exception.Base):
17 '''This file doesn't look like a .adm file to me.'''
18 pass
19
20
21 class AdmGatherer(regexp.RegexpGatherer):
22 '''Gatherer for the translateable portions of an admin template.
23
24 This gatherer currently makes the following assumptions:
25 - there is only one [strings] section and it is always the last section
26 of the file
27 - translateable strings do not need to be escaped.
28 '''
29
30 # Finds the strings section as the group named 'strings'
31 _STRINGS_SECTION = lazy_re.compile(
32 '(?P<first_part>.+^\[strings\])(?P<strings>.+)\Z',
33 re.MULTILINE | re.DOTALL)
34
35 # Finds the translateable sections from within the [strings] section.
36 _TRANSLATEABLES = lazy_re.compile(
37 '^\s*[A-Za-z0-9_]+\s*=\s*"(?P<text>.+)"\s*$',
38 re.MULTILINE)
39
40 def Escape(self, text):
41 return text.replace('\n', '\\n')
42
43 def UnEscape(self, text):
44 return text.replace('\\n', '\n')
45
46 def Parse(self):
47 if self.have_parsed_:
48 return
49 self.have_parsed_ = True
50
51 self.text_ = self._LoadInputFile().strip()
52 m = self._STRINGS_SECTION.match(self.text_)
53 if not m:
54 raise MalformedAdminTemplateException()
55 # Add the first part, which is all nontranslateable, to the skeleton
56 self._AddNontranslateableChunk(m.group('first_part'))
57 # Then parse the rest using the _TRANSLATEABLES regexp.
58 self._RegExpParse(self._TRANSLATEABLES, m.group('strings'))
59
60 def GetTextualIds(self):
61 return [self.extkey]
OLDNEW
« no previous file with comments | « grit/gather/__init__.py ('k') | grit/gather/admin_template_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698