Index: packagerEdge.py |
=================================================================== |
--- a/packagerEdge.py |
+++ b/packagerEdge.py |
@@ -4,7 +4,10 @@ |
import os |
import shutil |
+import json |
+import re |
from StringIO import StringIO |
+from glob import glob |
import subprocess |
import tempfile |
from xml.etree import ElementTree |
@@ -140,15 +143,17 @@ |
if metadata.has_section('import_locales'): |
packagerChrome.import_locales(params, files) |
- # For some mysterious reasons manifoldjs fails with a server error |
- # when building the development build and there is any translation |
- # in az/messages.json for "name_devbuild", however, it works fine |
- # if we use the more specific language code az-latn. |
- az_translation = files.pop('_locales/az/messages.json', None) |
- if az_translation is not None: |
- files['_locales/az-latn/messages.json'] = az_translation |
- |
- files['manifest.json'] = packagerChrome.createManifest(params, files) |
+ # The Windows Store will reject the build unless every translation of the |
+ # product name has been reserved. This is hard till impossible to manage |
+ # with community translations, so we don't translate the product name for |
+ # Microsoft Edge. Furthermore, manifoldjs fails with a server error if the |
+ # product name is tranlated into Azerbajani. |
+ data = json.loads(files['_locales/{}/messages.json'.format(defaultLocale)]) |
+ files['manifest.json'] = re.sub( |
+ r'__MSG_(name(?:_devbuild)?)__', |
+ lambda m: data[m.group(1)]['message'], |
+ packagerChrome.createManifest(params, files), |
+ ) |
if devenv: |
packagerChrome.add_devenv_requirements(files, metadata, params) |
@@ -174,14 +179,14 @@ |
cmd_env['SRC_FOLDER'] = src_dir |
cmd_env['EXT_FOLDER'] = ext_dir |
- manifold_folder = os.path.join(ext_dir, 'MSGname', 'edgeextension') |
- manifest_folder = os.path.join(manifold_folder, 'manifest') |
- asset_folder = os.path.join(manifest_folder, ASSETS_DIR) |
- |
# prepare the extension with manifoldjs |
cmd = ['npm', 'run', '--silent', 'build-edge'] |
subprocess.check_call(cmd, env=cmd_env, cwd=os.path.dirname(__file__)) |
+ manifold_folder = glob(os.path.join(ext_dir, '*', 'edgeextension'))[0] |
+ manifest_folder = os.path.join(manifold_folder, 'manifest') |
+ asset_folder = os.path.join(manifest_folder, ASSETS_DIR) |
+ |
# update incomplete appxmanifest |
intermediate_manifest = os.path.join(manifest_folder, MANIFEST) |
update_appx_manifest(intermediate_manifest, baseDir, files, metadata, |