def get_languages_supported_by_all(cls, root_egg):
egg_interfaces = cls.get_all_relevant_interfaces(root_egg)
default_languages = ['en_gb']
if not egg_interfaces:
return default_languages
domains_in_use = [e.name for e in egg_interfaces]
languages_for_eggs = {}
for translation_entry_point in iter_entry_points('reahl.translations'):
requirement = translation_entry_point.dist.as_requirement()
egg_internal_path = cls.get_egg_internal_path_for(translation_entry_point)
if resource_isdir(requirement, egg_internal_path):
languages = [d for d in resource_listdir(requirement, egg_internal_path)
if (resource_isdir(requirement, '%s/%s' % (egg_internal_path, d)) and not d.startswith('__'))]
else:
logging.error('Translations of %s not found in %s' % (requirement, egg_internal_path))
languages = []
for language in languages:
language_path = '%s/%s/LC_MESSAGES' % (egg_internal_path, language)
domains = [d[:-3] for d in resource_listdir(requirement, language_path) if d.endswith('.mo')]
for domain in domains:
if domain in domains_in_use:
languages = languages_for_eggs.setdefault(domain, set())
languages.add(language)
if not languages_for_eggs.values():
return default_languages
languages = (list(languages_for_eggs.values()))[0].intersection(*languages_for_eggs.values())
languages.update(default_languages)
return list(languages)
评论列表
文章目录