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

Side by Side Diff: grit/format/resource_map.py

Issue 9965022: Allow substitution of messages as variables in other messages. (Closed) Base URL: https://grit-i18n.googlecode.com/svn/trunk
Patch Set: Fix unit tests for policy writers. Created 8 years, 8 months 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/format/rc_unittest.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
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 '''This file contains item formatters for resource_map_header and 6 '''This file contains item formatters for resource_map_header and
7 resource_map_source files. A resource map is a mapping between resource names 7 resource_map_source files. A resource map is a mapping between resource names
8 (string) and the internal resource ID.''' 8 (string) and the internal resource ID.'''
9 9
10 import os 10 import os
(...skipping 20 matching lines...) Expand all
31 pos = filename.find('_') 31 pos = filename.find('_')
32 if pos >= len(filename): 32 if pos >= len(filename):
33 break 33 break
34 filename = filename[:pos] + filename[pos + 1].upper() + filename[pos + 2:] 34 filename = filename[:pos] + filename[pos + 1].upper() + filename[pos + 2:]
35 return 'k' + filename 35 return 'k' + filename
36 36
37 37
38 class HeaderTopLevel(interface.ItemFormatter): 38 class HeaderTopLevel(interface.ItemFormatter):
39 '''Create the header file for the resource mapping. This file just declares 39 '''Create the header file for the resource mapping. This file just declares
40 an array of name/value pairs.''' 40 an array of name/value pairs.'''
41 def Format(self, item, lang='en', begin_item=True, output_dir='.'): 41 def Format(self, item, lang='en', output_dir='.'):
42 if not begin_item:
43 return ''
44 return '''\ 42 return '''\
45 // Copyright (c) %(year)d The Chromium Authors. All rights reserved. 43 // Copyright (c) %(year)d The Chromium Authors. All rights reserved.
46 // Use of this source code is governed by a BSD-style license that can be 44 // Use of this source code is governed by a BSD-style license that can be
47 // found in the LICENSE file. 45 // found in the LICENSE file.
48 // This file is automatically generated by GRIT. Do not edit. 46 // This file is automatically generated by GRIT. Do not edit.
49 47
50 #include <stddef.h> 48 #include <stddef.h>
51 49
52 #ifndef GRIT_RESOURCE_MAP_STRUCT_ 50 #ifndef GRIT_RESOURCE_MAP_STRUCT_
53 #define GRIT_RESOURCE_MAP_STRUCT_ 51 #define GRIT_RESOURCE_MAP_STRUCT_
54 struct GritResourceMap { 52 struct GritResourceMap {
55 const char* const name; 53 const char* const name;
56 int value; 54 int value;
57 }; 55 };
58 #endif // GRIT_RESOURCE_MAP_STRUCT_ 56 #endif // GRIT_RESOURCE_MAP_STRUCT_
59 57
60 extern const GritResourceMap %(map_name)s[]; 58 extern const GritResourceMap %(map_name)s[];
61 extern const size_t %(map_name)sSize; 59 extern const size_t %(map_name)sSize;
62 ''' % { 'year': util.GetCurrentYear(), 60 ''' % { 'year': util.GetCurrentYear(),
63 'map_name': GetMapName(item.GetRoot()), 61 'map_name': GetMapName(item.GetRoot()),
64 } 62 }
65 63
66 64
67 class SourceTopLevel(interface.ItemFormatter): 65 class SourceTopLevel(interface.ItemFormatter):
68 '''Create the C++ source file for the resource mapping. This class handles 66 '''Create the C++ source file for the resource mapping. This class handles
69 the header/footer of the file.''' 67 the header/footer of the file.'''
70 def Format(self, item, lang='en', begin_item=True, output_dir='.'): 68 def Format(self, item, lang='en', output_dir='.'):
71 if begin_item: 69 grit_root = item.GetRoot()
72 grit_root = item.GetRoot() 70 outputs = grit_root.GetOutputFiles()
73 outputs = grit_root.GetOutputFiles() 71 rc_header_file = None
74 rc_header_file = None 72 map_header_file = None
75 map_header_file = None 73 for output in outputs:
76 for output in outputs: 74 if 'rc_header' == output.GetType():
77 if 'rc_header' == output.GetType(): 75 rc_header_file = output.GetFilename()
78 rc_header_file = output.GetFilename() 76 elif 'resource_map_header' == output.GetType():
79 elif 'resource_map_header' == output.GetType(): 77 map_header_file = output.GetFilename()
80 map_header_file = output.GetFilename() 78 if not rc_header_file or not map_header_file:
81 if not rc_header_file or not map_header_file: 79 raise Exception('resource_map_source output type requires '
82 raise Exception('resource_map_source output type requires ' 80 'resource_map_header and rc_header outputs')
83 'resource_map_header and rc_header outputs') 81 return '''\
84
85 return '''\
86 // Copyright (c) %(year)d The Chromium Authors. All rights reserved. 82 // Copyright (c) %(year)d The Chromium Authors. All rights reserved.
87 // Use of this source code is governed by a BSD-style license that can be 83 // Use of this source code is governed by a BSD-style license that can be
88 // found in the LICENSE file. 84 // found in the LICENSE file.
89 // This file is automatically generated by GRIT. Do not edit. 85 // This file is automatically generated by GRIT. Do not edit.
90 86
91 #include "%(map_header_file)s" 87 #include "%(map_header_file)s"
92 88
93 #include "base/basictypes.h" 89 #include "base/basictypes.h"
94 #include "%(rc_header_file)s" 90 #include "%(rc_header_file)s"
95 91
96 const GritResourceMap %(map_name)s[] = { 92 const GritResourceMap %(map_name)s[] = {
97 ''' % { 'year': util.GetCurrentYear(), 93 ''' % { 'year': util.GetCurrentYear(),
98 'map_header_file': map_header_file, 94 'map_header_file': map_header_file,
99 'rc_header_file': rc_header_file, 95 'rc_header_file': rc_header_file,
100 'map_name': GetMapName(item.GetRoot()), 96 'map_name': GetMapName(item.GetRoot()),
101 } 97 }
102 else: 98
103 # Return the footer text. 99 def FormatEnd(self, item, lang='en', output_dir='.'):
104 return '''\ 100 # Return the footer text.
101 return '''\
105 }; 102 };
106 103
107 const size_t %(map_name)sSize = arraysize(%(map_name)s); 104 const size_t %(map_name)sSize = arraysize(%(map_name)s);
108 ''' % { 'map_name': GetMapName(item.GetRoot()) } 105 ''' % { 'map_name': GetMapName(item.GetRoot()) }
109 106
110 107
111 class SourceInclude(interface.ItemFormatter): 108 class SourceInclude(interface.ItemFormatter):
112 '''Populate the resource mapping. For each include, we map a string to 109 '''Populate the resource mapping. For each include, we map a string to
113 the resource ID.''' 110 the resource ID.'''
114 def Format(self, item, lang='en', begin_item=True, output_dir='.'): 111 def Format(self, item, lang='en', output_dir='.'):
115 if not begin_item:
116 return ''
117 return ' {"%s", %s},\n' % (item.attrs['name'], item.attrs['name']) 112 return ' {"%s", %s},\n' % (item.attrs['name'], item.attrs['name'])
118 113
119 114
120 class SourceFileInclude(interface.ItemFormatter): 115 class SourceFileInclude(interface.ItemFormatter):
121 '''Populate the resource mapping. For each include, we map a filename to 116 '''Populate the resource mapping. For each include, we map a filename to
122 the resource ID.''' 117 the resource ID.'''
123 def Format(self, item, lang='en', begin_item=True, output_dir='.'): 118 def Format(self, item, lang='en', output_dir='.'):
124 if not begin_item:
125 return ''
126 filename = item.attrs['file'].replace("\\", "/") 119 filename = item.attrs['file'].replace("\\", "/")
127 return ' {"%s", %s},\n' % (filename, item.attrs['name']) 120 return ' {"%s", %s},\n' % (filename, item.attrs['name'])
OLDNEW
« no previous file with comments | « grit/format/rc_unittest.py ('k') | grit/gather/admin_template_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698