On 1/17/11 1:56 PM, Robin Berjon wrote:
On Jan 11, 2011, at 08:24 , Marcos Caceres wrote:
On 1/10/11 4:28 PM, Robin Berjon wrote:
I would argue that it's not particularly complicated to implement,
and we are seeing it used in Opera extensions: we have extensions
in 15 languages as of today in our catalog [0].
Nothing in P+C is super-hard to implement, but the l12n parts account
for most of the complexity,
I've only implemented the i18n stuff in Javascript, but I didn't find it
particularly hard (relative to anything else). Opera devs implemented
the i18n stuff in a couple of days. The parts that took a long time were
the processing model and annoying XML issues not related to the i18n
model. I guess complexity is relative, particularly if the implementer
sees little return on investment in implementing the feature (then by
"complexity" you really mean "I can't be arsed doing it now because I
don't *believe* people will use it"... bit of a self-fulfilling
prophecy: no one uses the thing that was never implemented).
and the primary reason why such an
implementation is more than just reading a Zip archive plus a little
extra processing.
True. But the alternative was no i18n model at all, right? Then we would
be in the situation where there would not be any interoperable i18n
solution (everyone would roll their own, or an API). Not having a formal
i18n solution has several risks and consequences:
* The i18n solutions would not be reusable (or simply fragmented).
* The i18n solution could be done wrongly [1] (assuming our is
correct given the amount of guidance from the i18n WG).
* Catalogs would not be able to present localize content (or inform
end-users if their language is supported).
* User agents could not find the right bits of localized content to
display in widget managers.
Yes, the current solution adds complexity - but the benefits have
clearly, in Opera's case, outweighed the costs. For developers, we also
greatly simplified the XML P&C i18n solution by not using ITS and simply
relying on what XML already provided. WRT folder-based localization, it
closely matches the i18n models used in software development (and was
part of most widget platforms when we did the original landscape
analysis for widgets; we were just following what was best practice at
the time). So, it's not like we introduced anything weird.
TOTAL (all languages): 335 of which 74 use another language (20% of
the catalog). 20% is fairly significant and certainly indicative of
"actual usage". To put into perspective, we have had over 4 million
downloads of extensions since launch.
If it's only 20% then I maintain that it's not enough to justify the
feature. We have a 20/80 situation here, when we'd want an 80/20 :)
It's not realistic to expect every developer to cover 80% of languages -
so I don't understand your argument. A significant number of Europeans
know on average 2 languages and some content simply does not make sense
to be localized. From [0]:
"56% of citizens in the EU Member States are able to hold a conversation
in one language apart from their mother tongue... Notwithstanding, a
minority speaking either an official EU language other than the state
language or a non-European language as their mother tongue is recorded
in every country polled."
The fact that developers are making an effort to cover 20% of languages
cannot be understated or cast off by the arbitrary 80/20 rule. From [0]:
"With respect to the goal for every EU citizen to have knowledge of two
languages in addition to their mother tongue, 28% of the respondents
state that they speak two foreign languages well enough to have a
conversation. This is especially the case in Luxembourg (92%), the
Netherlands (75%) and Slovenia (71%). 11% of the respondents indicate
that they master at least three languages apart from their mother tongue."
Having the 20% of developers shows that, in fact, developers *do* care
about localizing content and they do understand that they are delivering
their content to a multilingual environment (if it was 28%, then we
would be at the EU average). Opera has done virtually no promotion of
the i18n model (developers just picked it up and ran with it), and I
firmly believe once we educate developers on how easy the model is to
use, we will see even higher numbers of developers making use of it.
It's evident that the i18n model is usable by runtimes, widget
galleries, and developers.
It's usable, it's just excessive complexity to value IMHO.
I think the central question is how would you have done it differently
(keeping to the current constraint that is XML)? Which leads to...
But as I said, if we split the specs into pieces I'm happy!
The point of splitting the specs would be to allow us to
explore/standardize alternatives without breaking current runtimes and
content. Let me make this absolutely clear: this is not an exercise to
discard the current solution. Splitting the specs would be a way to
further the reach of widgets and improve their adoption in the market.
This is not to say that widgets in their current form have not been
successful: there are bunch of awesome products out there based on
widgets (Try Opera Extensions today!:)). However, some solutions we
adopted early have proved unfashionable (XML instead of JSON), and some
decisions are justifiably problematic (XML Digital Signatures and its
reliance on XML Canonicalization, which in retrospect was a horrific
choice).
[0] http://ec.europa.eu/public_opinion/archives/ebs/ebs_243_sum_en.pdf
[1]
http://search.cpan.org/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod#A_Localization_Horror_Story:_It_Could_Happen_To_You