| Index: grit/format/js_map_format.py
|
| ===================================================================
|
| --- grit/format/js_map_format.py (revision 0)
|
| +++ grit/format/js_map_format.py (revision 0)
|
| @@ -0,0 +1,66 @@
|
| +#!/usr/bin/python2.4
|
| +#
|
| +# Copyright (c) 2009 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.
|
| +
|
| +"""Formats as a .js file using a map: <english text> -> <localized text>.
|
| +"""
|
| +
|
| +import os
|
| +import re
|
| +import types
|
| +
|
| +from grit import util
|
| +from grit.format import interface
|
| +from grit.node import io
|
| +
|
| +
|
| +class TopLevel(interface.ItemFormatter):
|
| + """Writes out the required preamble for JS files."""
|
| +
|
| + def Format(self, item, lang='en', begin_item=True, output_dir='.'):
|
| + """Format the JS file header."""
|
| + assert isinstance(lang, types.StringTypes)
|
| + if not begin_item:
|
| + return ''
|
| + else:
|
| + return '''// Copyright %d Google Inc. All Rights Reserved.
|
| +// This file is automatically generated by GRIT. Do not edit.
|
| +''' % (util.GetCurrentYear())
|
| +
|
| +
|
| +class StringTable(interface.ItemFormatter):
|
| + """Writes out the string table."""
|
| +
|
| + def Format(self, item, lang='en', begin_item=True, output_dir='.'):
|
| + if begin_item:
|
| + return ''
|
| + else:
|
| + return '\n'
|
| +
|
| +
|
| +class Message(interface.ItemFormatter):
|
| + """Writes out a single message."""
|
| +
|
| + def Format(self, item, lang='en', begin_item=True, output_dir='.'):
|
| + """Format a single message."""
|
| + if not begin_item:
|
| + return ''
|
| +
|
| + from grit.node import message
|
| +
|
| + assert isinstance(lang, types.StringTypes)
|
| + assert isinstance(item, message.MessageNode)
|
| +
|
| + en_message = item.ws_at_start + item.Translate('en') + item.ws_at_end
|
| + # Remove position numbers from placeholders.
|
| + en_message = re.sub(r'%\d\$([a-z])', r'%\1', en_message)
|
| + # Escape double quotes.
|
| + en_message = re.sub(r'"', r'\"', en_message)
|
| +
|
| + loc_message = item.ws_at_start + item.Translate(lang) + item.ws_at_end
|
| + # Escape double quotes.
|
| + loc_message = re.sub(r'"', r'\"', loc_message)
|
| +
|
| + return '\nlocalizedStrings["%s"] = "%s";' % (en_message, loc_message)
|
|
|
| Property changes on: grit/format/js_map_format.py
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|