OLD | NEW |
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 """Formats as a .js file using a map: <english text> -> <localized text>. | 6 """Formats as a .js file using a map: <english text> -> <localized text>. |
7 """ | 7 """ |
8 | 8 |
9 import re | 9 import re |
10 import types | 10 import types |
(...skipping 25 matching lines...) Expand all Loading... |
36 """Format a single message.""" | 36 """Format a single message.""" |
37 from grit.node import message | 37 from grit.node import message |
38 | 38 |
39 assert isinstance(lang, types.StringTypes) | 39 assert isinstance(lang, types.StringTypes) |
40 assert isinstance(item, message.MessageNode) | 40 assert isinstance(item, message.MessageNode) |
41 | 41 |
42 en_message = item.ws_at_start + item.Translate('en') + item.ws_at_end | 42 en_message = item.ws_at_start + item.Translate('en') + item.ws_at_end |
43 # Remove position numbers from placeholders. | 43 # Remove position numbers from placeholders. |
44 en_message = re.sub(r'%\d\$([a-z])', r'%\1', en_message) | 44 en_message = re.sub(r'%\d\$([a-z])', r'%\1', en_message) |
45 # Escape double quotes. | 45 # Escape double quotes. |
| 46 en_message = re.sub(r'\\', r'\\\\', en_message) |
46 en_message = re.sub(r'"', r'\"', en_message) | 47 en_message = re.sub(r'"', r'\"', en_message) |
47 | 48 |
48 loc_message = item.ws_at_start + item.Translate(lang) + item.ws_at_end | 49 loc_message = item.ws_at_start + item.Translate(lang) + item.ws_at_end |
49 # Escape double quotes. | 50 # Escape double quotes. |
| 51 loc_message = re.sub(r'\\', r'\\\\', loc_message) |
50 loc_message = re.sub(r'"', r'\"', loc_message) | 52 loc_message = re.sub(r'"', r'\"', loc_message) |
51 | 53 |
52 return '\nlocalizedStrings["%s"] = "%s";' % (en_message, loc_message) | 54 return '\nlocalizedStrings["%s"] = "%s";' % (en_message, loc_message) |
OLD | NEW |