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

Side by Side Diff: grit/format/data_pack.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/c_format.py ('k') | grit/format/interface.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 '''Support for formatting a data pack file used for platform agnostic resource 6 '''Support for formatting a data pack file used for platform agnostic resource
7 files. 7 files.
8 ''' 8 '''
9 9
10 import exceptions 10 import exceptions
(...skipping 16 matching lines...) Expand all
27 class WrongFileVersion(Exception): 27 class WrongFileVersion(Exception):
28 pass 28 pass
29 29
30 class DataPackContents: 30 class DataPackContents:
31 def __init__(self, resources, encoding): 31 def __init__(self, resources, encoding):
32 self.resources = resources 32 self.resources = resources
33 self.encoding = encoding 33 self.encoding = encoding
34 34
35 class DataPack(interface.ItemFormatter): 35 class DataPack(interface.ItemFormatter):
36 '''Writes out the data pack file format (platform agnostic resource file).''' 36 '''Writes out the data pack file format (platform agnostic resource file).'''
37 def Format(self, item, lang='en', begin_item=True, output_dir='.'): 37 def Format(self, item, lang='en', output_dir='.'):
38 if not begin_item:
39 return ''
40
41 assert isinstance(item, misc.ReleaseNode) 38 assert isinstance(item, misc.ReleaseNode)
42 39
43 nodes = DataPack.GetDataNodes(item) 40 nodes = DataPack.GetDataNodes(item)
44 data = {} 41 data = {}
45 for node in nodes: 42 for node in nodes:
46 id, value = node.GetDataPackPair(lang, UTF8) 43 id, value = node.GetDataPackPair(lang, UTF8)
47 data[id] = value 44 data[id] = value
48 return DataPack.WriteDataPackToString(data, UTF8) 45 return DataPack.WriteDataPackToString(data, UTF8)
49 46
50 @staticmethod 47 @staticmethod
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 str(new_content.encoding)) 147 str(new_content.encoding))
151 148
152 resources.update(new_content.resources) 149 resources.update(new_content.resources)
153 150
154 # Encoding is 0 for BINARY, 1 for UTF8 and 2 for UTF16 151 # Encoding is 0 for BINARY, 1 for UTF8 and 2 for UTF16
155 if encoding is None: 152 if encoding is None:
156 encoding = BINARY 153 encoding = BINARY
157 DataPack.WriteDataPack(resources, output_file, encoding) 154 DataPack.WriteDataPack(resources, output_file, encoding)
158 155
159 def main(): 156 def main():
160 # Just write a simple file. 157 if len(sys.argv):
161 data = { 1: "", 4: "this is id 4", 6: "this is id 6", 10: "" } 158 # When an argument is given, read and explode the file to text
162 DataPack.WriteDataPack(data, "datapack1.pak", UTF8) 159 # format, for easier diffing.
163 data2 = { 1000: "test", 5: "five" } 160 data = DataPack.ReadDataPack(sys.argv[1])
164 DataPack.WriteDataPack(data2, "datapack2.pak", UTF8) 161 print data.encoding
165 print "wrote datapack1 and datapack2 to current directory." 162 for (resource_id, text) in data.resources.iteritems():
163 print "%s: %s" % (resource_id, text)
164 else:
165 # Just write a simple file.
166 data = { 1: "", 4: "this is id 4", 6: "this is id 6", 10: "" }
167 DataPack.WriteDataPack(data, "datapack1.pak", UTF8)
168 data2 = { 1000: "test", 5: "five" }
169 DataPack.WriteDataPack(data2, "datapack2.pak", UTF8)
170 print "wrote datapack1 and datapack2 to current directory."
166 171
167 if __name__ == '__main__': 172 if __name__ == '__main__':
168 main() 173 main()
OLDNEW
« no previous file with comments | « grit/format/c_format.py ('k') | grit/format/interface.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698