| OLD | NEW | 
|---|
| 1 # This file is part of the Adblock Plus web scripts, | 1 # This file is part of the Adblock Plus web scripts, | 
| 2 # Copyright (C) 2006-present eyeo GmbH | 2 # Copyright (C) 2006-present eyeo GmbH | 
| 3 # | 3 # | 
| 4 # Adblock Plus is free software: you can redistribute it and/or modify | 4 # Adblock Plus is free software: you can redistribute it and/or modify | 
| 5 # it under the terms of the GNU General Public License version 3 as | 5 # it under the terms of the GNU General Public License version 3 as | 
| 6 # published by the Free Software Foundation. | 6 # published by the Free Software Foundation. | 
| 7 # | 7 # | 
| 8 # Adblock Plus is distributed in the hope that it will be useful, | 8 # Adblock Plus is distributed in the hope that it will be useful, | 
| 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 143         # Handle duplicated strings | 143         # Handle duplicated strings | 
| 144         if default: | 144         if default: | 
| 145             self._seen_defaults[(page, name)] = (default, comment) | 145             self._seen_defaults[(page, name)] = (default, comment) | 
| 146         else: | 146         else: | 
| 147             try: | 147             try: | 
| 148                 default, comment = self._seen_defaults[(page, name)] | 148                 default, comment = self._seen_defaults[(page, name)] | 
| 149             except KeyError: | 149             except KeyError: | 
| 150                 raise Exception('Text not yet defined for string {} on page' | 150                 raise Exception('Text not yet defined for string {} on page' | 
| 151                                 ' {}'.format(name, page)) | 151                                 ' {}'.format(name, page)) | 
| 152 | 152 | 
|  | 153         full_default = default | 
| 153         # Extract tag attributes from default string | 154         # Extract tag attributes from default string | 
| 154         default, saved_attributes, fixed_strings = ( | 155         default, saved_attributes, fixed_strings = ( | 
| 155             self._attribute_parser.parse(default, self._params['page'])) | 156             self._attribute_parser.parse(default, self._params['page'])) | 
| 156 | 157 | 
| 157         # Get translation | 158         # Get translation | 
| 158         locale = self._params['locale'] | 159         locale = self._params['locale'] | 
| 159         if locale == self._params['defaultlocale']: | 160         if locale == self._params['defaultlocale']: | 
| 160             result = default | 161             result = default | 
| 161         elif name in localedata: | 162         elif name in localedata: | 
| 162             result = localedata[name].strip() | 163             result = localedata[name].strip() | 
|  | 164             # If the string is present in default locale, but not in the | 
|  | 165             # current one, we will get the value from default locale here. | 
|  | 166             # If it happens to contain attributes on any tags, those need | 
|  | 167             # to be stripped, otherwise the attribute substitution below won't | 
|  | 168             # work. Luckily, we already have the default translation string | 
|  | 169             # with attributes stripped -- it's the value of `default`. | 
|  | 170             if result == full_default.strip(): | 
|  | 171                 result = default | 
| 163         else: | 172         else: | 
| 164             result = default | 173             result = default | 
| 165             self.missing_translations += 1 | 174             self.missing_translations += 1 | 
| 166         self.total_translations += 1 | 175         self.total_translations += 1 | 
| 167 | 176 | 
| 168         # Perform callback with the string if required, e.g. for the | 177         # Perform callback with the string if required, e.g. for the | 
| 169         # translations script | 178         # translations script | 
| 170         callback = self._params['localized_string_callback'] | 179         callback = self._params['localized_string_callback'] | 
| 171         if callback: | 180         if callback: | 
| 172             callback(page, locale, name, result, comment, fixed_strings) | 181             callback(page, locale, name, result, comment, fixed_strings) | 
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 523             stack[-1]['subitems'].append(item) | 532             stack[-1]['subitems'].append(item) | 
| 524             stack.append(item) | 533             stack.append(item) | 
| 525         return structured | 534         return structured | 
| 526 | 535 | 
| 527 | 536 | 
| 528 converters = { | 537 converters = { | 
| 529     'html': RawConverter, | 538     'html': RawConverter, | 
| 530     'md': MarkdownConverter, | 539     'md': MarkdownConverter, | 
| 531     'tmpl': TemplateConverter, | 540     'tmpl': TemplateConverter, | 
| 532 } | 541 } | 
| OLD | NEW | 
|---|