Boost logo

Boost :

Subject: Re: [boost] [locale] Review results for Boost.Locale library
From: Gevorg Voskanyan (v_gevorg_at_[hidden])
Date: 2011-04-24 12:18:48


Ryou Ezoe wrote: > I can't believe it is accepted. > There were just 15 people explicitly stated their opinion. > There was only one native non-western language speaker. Me. What is your definition of a western and a non-western language? > I really hate to complain much, but this library is totally useless > for the Non-English speaker. I understand the message translation module of Boost.Locale is not currently well-suited for use with non-ASCII keys. But what about other modules: number formatting, collation, boundary analysis, etc.? Do you consider them useless for non-English speakers too? > Library author said it is important to use English. > Because it allow us to easily translate to other languages. > Does it really matter if Non-English people don't bother to use this library? > > Believe me, There are so many Boost users who don't know English at all. > They are good at using Boost library because there are enough translations. > > This English-dependent library cannot be used by these users. > They CAN use English identifier in the source file. like name of > functions, classes, variables etc(badly If you ask me) > But text is written in their language. > There is no way they use English text. > The text in software is not just written by programmer alone. > Non-programmers also write text. > So this library requires English for anybody. > > If anybody can use English. There is no need for localization in the > first place. I can't follow the logic here. Even if all programmers have known English, there still will be need for localization, because not all *users* necessarily know English. Unless all users of the software are programmers themselves. > That means, if everybody can use this English-dependent library, the > purpose of this library, the localization, is unnecessary. Not true. Software localization is primarily aimed at users, not developers, as I already stressed above. Boost.Locale is not a localized library. It is a library which can help create localized software. And even when people know English, that doesn't mean they don't want software to speak their language. Moreover localization is not all about the language. It's more about local culture, and conventions used within that culture. For example, I can read and understand English well. That means I can use just fine software with English as the user interface language without any need for translation (even though I prefer Armenian translation if available, but English will do for me otherwise). The same cannot be said about other cultural aspects. For example, if some software shows me distances in miles and masses in pounds, those values will not make any sense to me, and I'd be forced to convert those values in kilometers and kilograms to understand how much they are. And of course I'll be angry and dissatisfied with that software. Localization is a much larger domain than just message text translation, so Boost.Locale needs to be evaluated in that whole context, rather than in just a specific (even if very important) aspect. > I think I found a another issue. > Even the English text cannot be express by ASCII alone. > There are many characters ASCII doesn't have. such as ®. > > So this library need to maintain two almost identical English texts. > One for real English text which contains non-ASCII characters, and one > for unique ASCII identifier that is a argument of translate(). That's a working approach. Do you have a proposal for another approach which could be implemented in Boost.Locale to make it better in that regard? > But enough of argument. The arguments you made earlier have convinced me that using English keys is not always appropriate. Not only because programmers might not be able to write English, but also because the product being developed might not target English speaking audience at all. E.g. a product targeting Chinese, Korean and Japanese markets only. In that case making an English translation would be just a waste of time and money. However your arguments didn't convince me that Boost.Locale should be rejected on that ground, with the following reasons: 1. Using C++11 u8 encoding prefix will resolve the problem 2. Current message translation system is based on widely accepted existing practice, and works well in the majority of use cases 3. I have not yet seen a truly working proposal from you which can address the problem properly in Boost.Locale using C++03 features only 4. Boost.Locale is much more than just message translation. I can imagine many legitimate usages of Boost.Locale not involving message translation at all > I just want to assure you all, this library will never be used by > non-English speaker. Not even when they have u8 prefix? Not even when they don't need message translation but other features of Boost.Locale? > Blaming people for not to use English doesn't work. They don't care. I don't think anyone was making such blames in these discussions. There were only suggestions to use ASCII-based keys for now as they are more portable. > Just like you don't care their language. If Artyom didn't care what language is being used by different users, he wouldn't have developed a localization library in the first place. He would rather declare "In order to use my software, you should talk to it in my language". And note that English is not Artyom's native language either. > Ryou Ezoe Regards, Gevorg


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk