def get(self) -> Response: """Get available translations.""" catalog = GRAMPS_LOCALE.get_language_dict() return self.response( 200, [{ "language": language, "code": catalog[language] } for language in catalog], )
def get_locale_for_language(language: str, default: bool = False) -> GrampsLocale: """Get GrampsLocale set to specified language.""" if language is not None: catalog = GRAMPS_LOCALE.get_language_dict() for entry in catalog: if catalog[entry] == language: return GrampsLocale(lang=language) if default: return GRAMPS_LOCALE return None
def add_localization_option(menu, category): """ Insert an option for localizing the report into a different locale from the UI locale. """ trans = EnumeratedListOption(_("Translation"), glocale.DEFAULT_TRANSLATION_STR) trans.add_item(glocale.DEFAULT_TRANSLATION_STR, _("Default")) languages = glocale.get_language_dict() for language in sorted(languages, key=glocale.sort_key): trans.add_item(languages[language], language) trans.set_help(_("The translation to be used for the report.")) menu.add_option(category, "trans", trans)
def get(self, args: Dict, language: str) -> Response: """Get translation.""" try: strings = json.loads(args["strings"]) except json.JSONDecodeError: abort(400) catalog = GRAMPS_LOCALE.get_language_dict() for entry in catalog: if catalog[entry] == language: gramps_locale = GrampsLocale(lang=language) return self.response( 200, [{ "original": s, "translation": gramps_locale.translation.sgettext(s), } for s in strings], ) abort(404)
def __init__(self, rlocale): self.iculocale = Locale(rlocale.collation) super().__init__(self.iculocale) # set the maximum number of buckets, the undocumented default is 99 # Latin + Greek + Cyrillic + Hebrew + Arabic + Tamil + Hiragana + # CJK Unified is about 206 different buckets self.maxLabelCount = 500 # pylint: disable=invalid-name # Add bucket labels for scripts other than the one for the output # which is being generated self.iculocale.addLikelySubtags() default_script = self.iculocale.getDisplayScript() used_scripts = [default_script] for lang_code in glocale.get_language_dict().values(): loc = Locale(lang_code) loc.addLikelySubtags() script = loc.getDisplayScript() if script not in used_scripts: used_scripts.append(script) super().addLabels(loc)
def get(self) -> Response: """Get active database and application related metadata information.""" catalog = GRAMPS_LOCALE.get_language_dict() for entry in catalog: if catalog[entry] == GRAMPS_LOCALE.language[0]: language_name = entry break db_handle = self.db_handle db_name = db_handle.get_dbname() db_type = "Unknown" dbstate = DbState() db_summary = CLIDbManager(dbstate).family_tree_summary( database_names=[db_name]) if len(db_summary) == 1: db_key = GRAMPS_LOCALE.translation.sgettext("Database") for key in db_summary[0]: if key == db_key: db_type = db_summary[0][key] result = { "database": { "id": db_handle.get_dbid(), "name": db_name, "type": db_type, }, "default_person": db_handle.get_default_handle(), "gramps": { "version": ENV["VERSION"], }, "gramps_webapi": { "schema": VERSION, "version": VERSION, }, "locale": { "lang": GRAMPS_LOCALE.lang, "language": GRAMPS_LOCALE.language[0], "description": language_name, "incomplete_translation": bool(GRAMPS_LOCALE.language[0] in INCOMPLETE_TRANSLATIONS), }, "object_counts": { "people": db_handle.get_number_of_people(), "families": db_handle.get_number_of_families(), "sources": db_handle.get_number_of_sources(), "citations": db_handle.get_number_of_citations(), "events": db_handle.get_number_of_events(), "media": db_handle.get_number_of_media(), "places": db_handle.get_number_of_places(), "repositories": db_handle.get_number_of_repositories(), "notes": db_handle.get_number_of_notes(), "tags": db_handle.get_number_of_tags(), }, "researcher": db_handle.get_researcher(), "surnames": db_handle.get_surname_list(), } data = db_handle.get_summary() db_version_key = GRAMPS_LOCALE.translation.sgettext("Database version") db_module_key = GRAMPS_LOCALE.translation.sgettext( "Database module version") db_schema_key = GRAMPS_LOCALE.translation.sgettext("Schema version") for item in data: if item == db_version_key: result["database"]["version"] = data[item] elif item == db_module_key: result["database"]["module"] = data[item] elif item == db_schema_key: result["database"]["schema"] = data[item] return self.response(200, result)
def get(self, args: Union[Dict, None] = None) -> Response: """Get available translations.""" catalog = GRAMPS_LOCALE.get_language_dict() return self.response(200, {catalog[entry]: entry for entry in catalog})