| Index: cms/bin/translate.py |
| diff --git a/cms/bin/translate.py b/cms/bin/translate.py |
| index 5a855be517d056a698b5018f769ac6883708e011..f1cce1de719f1d5c9a60bebd3ca3680ea2086d44 100644 |
| --- a/cms/bin/translate.py |
| +++ b/cms/bin/translate.py |
| @@ -15,6 +15,7 @@ |
| # You should have received a copy of the GNU General Public License |
| # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| +import codecs |
| import collections |
| import io |
| import itertools |
| @@ -22,7 +23,6 @@ import json |
| import logging |
| import os |
| import posixpath |
| -import shutil |
| import sys |
| import urllib |
| import zipfile |
| @@ -262,9 +262,12 @@ def download_translations(crowdin_api, source_dir, required_locales): |
| locale_path, inverted_required_locales[locale], |
| *file_path + [file_name] |
| ) |
| - with archive.open(member) as source_file, \ |
| - open(output_path, "wb") as target_file: |
| - shutil.copyfileobj(source_file, target_file) |
| + with archive.open(member) as source_file: |
| + locale_file_contents = json.load(source_file) |
| + if len(locale_file_contents): |
| + with codecs.open(output_path, "wb", "utf-8") as target_file: |
| + json.dump(locale_file_contents, target_file, ensure_ascii=False, |
| + sort_keys=True, indent=2, separators=(",", ": ")) |
| def crowdin_sync(source_dir, crowdin_api_key): |
| with FileSource(source_dir) as source: |