Elm_Atspi_Role role;
const char *name;
const char *description;
+ const char *translation_domain;
Elm_Interface_Atspi_Accessible *parent;
};
EOLIAN char *
_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, Elm_Interface_Atspi_Accessible_Data *pd)
{
- return pd->name ? strdup(pd->name) : NULL;
+ if (pd->name)
+ {
+#ifdef ENABLE_NLS
+ if (pd->translation_domain)
+ return strdup(dgettext(pd->translation_domain, pd->name));
+ else
+ return strdup(pd->name);
+#else
+ return strdup(pd->name);
+#endif
+ }
+
+ return NULL;
}
EOLIAN static void
const char * _elm_interface_atspi_accessible_description_get(Eo *obj EINA_UNUSED, Elm_Interface_Atspi_Accessible_Data *pd)
{
+#ifdef ENABLE_NLS
+ if (pd->translation_domain)
+ return dgettext(pd->translation_domain, pd->description);
+#endif
return pd->description;
}
}
}
+EOLIAN void
+_elm_interface_atspi_accessible_translation_domain_set(Eo *obj EINA_UNUSED, Elm_Interface_Atspi_Accessible_Data *pd, const char *domain)
+{
+ eina_stringshare_replace(&pd->translation_domain, domain);
+}
+
+EOLIAN const char*
+_elm_interface_atspi_accessible_translation_domain_get(Eo *obj EINA_UNUSED, Elm_Interface_Atspi_Accessible_Data *pd)
+{
+ return pd->translation_domain;
+}
+
#include "elm_interface_atspi_accessible.eo.c"
@in event_info: void*; [[Accessibility event details.]]
}
}
+ @property translation_domain @protected {
+ get {
+ [[Gets the translation domain of "name" and "description"
+ properties.]]
+ }
+ set {
+ [[Sets the translation domain of "name" and "description"
+ properties.
+
+ Translation domain should be set if application wants to support i18n
+ for accessibily "name" and "description" properties.
+
+ When translation domain is set values of "name" and "description"
+ properties will be translated with dgettext function using
+ current translation domain as "domainname" parameter.
+
+ It is application developer responsibility to ensure that
+ translation files are loaded and binded to translation domain
+ when accessibility is enabled.]]
+ }
+ values {
+ domain: const(char)*; [[ translation domain ]]
+ }
+ }
}
events {
property,changed: const(char)*;
eo_do(eo_item, elm_interface_atspi_accessible_description_set(NULL));
eo_do(eo_item, elm_interface_atspi_accessible_name_set(NULL));
+ eo_do(eo_item, elm_interface_atspi_accessible_translation_domain_set(NULL));
if (_elm_config->atspi_mode && item->widget)
elm_interface_atspi_accessible_children_changed_del_signal_emit(item->widget, eo_item);
{
eo_do(obj, elm_interface_atspi_accessible_description_set(NULL));
eo_do(obj, elm_interface_atspi_accessible_name_set(NULL));
+ eo_do(obj, elm_interface_atspi_accessible_translation_domain_set(NULL));
elm_interface_atspi_accessible_removed(obj);
eo_do_super(obj, ELM_WIDGET_CLASS, eo_destructor());