Page MenuHomePhabricator

efl.ui.i18n
Open, TODOPublic

Description

| | | |interface Efl.Ui.I18n
| | | |├ (P) mirrored
| | | |├ (P) mirrored_automatic
| | | |├ (P) language
zmike created this task.Jan 8 2019, 11:37 AM
zmike triaged this task as TODO priority.
segfaultxavi moved this task from Backlog to Evaluating on the efl: api board.Feb 6 2019, 3:51 AM
zmike moved this task from Evaluating to "easy" on the efl: api board.Feb 6 2019, 5:36 AM

I already discussed in D7506 about mirrored and mirrored_automatic. I am OK with them now.
However, @bu5hm4n started removing the language property in D7721 and then put that work on hold. What's the story there?

The reason i have stopped this is that i18n & l10n need some major rethoughts:

In i18n we have mixed up a few things. There is IMO no real reason to have a different language per widgets, a language is per UI, not per widget. Same could be argured for mirrored, I just don't know much about mirrored. Further more, we allow in EFL evas objects etc. to work with a mirrored state. However, the interface only works for objects which inherit properties based on a tree-like structure, pure Evas_Objects don't have them, so mirrored_automatic does not make sense on those objects.

In l10n we are saving one translation for a translatable per domain PER OBJECT. Which is wrong IMO, since once central translation database like gettext is more than enough, thus this whole interface should be a standalone object with a event replacing the translation_update function, however, i was not able to work more on it as time passed by and I had to prepare for FOSDEM.

cedric added a comment.Feb 8 2019, 1:53 PM

The per object support for localization might be an historic request for some weird UI support where a part of the UI was defined for a different locale that the rest. I have no idea if there is any request for this to be kept for any existing product. Also with Efl interface, the root object is always going to be an Efl.Ui.Win which will have i18n defined on, so any Efl.Canvas.Object should actually be in a tree structure now.

For l10n, I think this is done for configuration UI that only has a sub tree getting translated until the change are validated.

zmike moved this task from "easy" to Backlog on the efl: api board.Fri, Mar 8, 7:32 AM