| Index: grit/format/chrome_messages_json.py
|
| ===================================================================
|
| --- grit/format/chrome_messages_json.py (revision 202)
|
| +++ grit/format/chrome_messages_json.py (working copy)
|
| @@ -1,57 +0,0 @@
|
| -#!/usr/bin/env python
|
| -# Copyright (c) 2012 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 .json file that can be used to localize Google Chrome
|
| -extensions."""
|
| -
|
| -from json import JSONEncoder
|
| -import re
|
| -import types
|
| -
|
| -from grit import util
|
| -from grit.node import message
|
| -
|
| -def Format(root, lang='en', output_dir='.'):
|
| - """Format the messages as JSON."""
|
| - yield '{\n'
|
| -
|
| - encoder = JSONEncoder();
|
| - format = (' "%s": {\n'
|
| - ' "message": %s%s\n'
|
| - ' }')
|
| - placeholder_format = (' "%i": {\n'
|
| - ' "content": "$%i"\n'
|
| - ' }')
|
| - first = True
|
| - for child in root.ActiveDescendants():
|
| - if isinstance(child, message.MessageNode):
|
| - id = child.attrs['name']
|
| - if id.startswith('IDR_') or id.startswith('IDS_'):
|
| - id = id[4:]
|
| -
|
| - loc_message = encoder.encode(child.ws_at_start + child.Translate(lang) +
|
| - child.ws_at_end)
|
| -
|
| - # Replace $n place-holders with $n$ and add an appropriate "placeholders"
|
| - # entry. Note that chrome.i18n.getMessage only supports 9 placeholders:
|
| - # https://developer.chrome.com/extensions/i18n#method-getMessage
|
| - placeholders = ''
|
| - for i in range(1, 10):
|
| - if loc_message.find('$%d' % i) == -1:
|
| - break
|
| - loc_message = loc_message.replace('$%d' % i, '$%d$' % i)
|
| - if placeholders:
|
| - placeholders += ',\n'
|
| - placeholders += placeholder_format % (i, i)
|
| -
|
| - if not first:
|
| - yield ',\n'
|
| - first = False
|
| -
|
| - if placeholders:
|
| - placeholders = ',\n "placeholders": {\n%s\n }' % placeholders
|
| - yield format % (id, loc_message, placeholders)
|
| -
|
| - yield '\n}\n'
|
|
|