27 import shutil |
27 import shutil |
28 import tempfile |
28 import tempfile |
29 import sys |
29 import sys |
30 from datetime import datetime, date |
30 from datetime import datetime, date |
31 from os import mkdir, chdir, path as osp |
31 from os import mkdir, chdir, path as osp |
|
32 import pkg_resources |
32 from warnings import warn |
33 from warnings import warn |
33 |
34 |
34 from pytz import UTC |
35 from pytz import UTC |
|
36 |
35 from six.moves import input |
37 from six.moves import input |
36 |
38 |
37 from logilab.common import STD_BLACKLIST |
39 from logilab.common import STD_BLACKLIST |
38 from logilab.common.fileutils import ensure_fs_mode |
40 from logilab.common.fileutils import ensure_fs_mode |
39 from logilab.common.shellutils import find |
41 from logilab.common.shellutils import find |
564 |
566 |
565 def update_cube_catalogs(cubedir): |
567 def update_cube_catalogs(cubedir): |
566 cubedir = osp.abspath(osp.normpath(cubedir)) |
568 cubedir = osp.abspath(osp.normpath(cubedir)) |
567 workdir = tempfile.mkdtemp() |
569 workdir = tempfile.mkdtemp() |
568 try: |
570 try: |
569 cube = osp.basename(cubedir) |
571 distname = osp.basename(cubedir) |
|
572 cubename = distname.split('_')[-1] |
570 print('cubedir', cubedir) |
573 print('cubedir', cubedir) |
571 print(underline_title('Updating i18n catalogs for cube %s' % cube)) |
574 extract_cls = I18nCubeMessageExtractor |
|
575 try: |
|
576 extract_cls = pkg_resources.load_entry_point( |
|
577 distname, 'cubicweb.i18ncube', cubename) |
|
578 except (pkg_resources.DistributionNotFound, ImportError): |
|
579 pass # no customization found |
|
580 print(underline_title('Updating i18n catalogs for cube %s' % cubename)) |
572 chdir(cubedir) |
581 chdir(cubedir) |
573 extractor = I18nCubeMessageExtractor(workdir, cubedir) |
582 extractor = extract_cls(workdir, cubedir) |
574 potfile = extractor.generate_pot_file() |
583 potfile = extractor.generate_pot_file() |
575 if potfile is None: |
584 if potfile is None: |
576 print('no message catalog for cube', cube, 'nothing to translate') |
585 print('no message catalog for cube', cubename, 'nothing to translate') |
577 return () |
586 return () |
578 print('-> merging main pot file with existing translations:', end=' ') |
587 print('-> merging main pot file with existing translations:', end=' ') |
579 chdir('i18n') |
588 chdir('i18n') |
580 toedit = [] |
589 toedit = [] |
581 for lang in CubicWebNoAppConfiguration.cw_languages(): |
590 for lang in CubicWebNoAppConfiguration.cw_languages(): |