Boost logo

Boost :

Subject: Re: [boost] [locale] Custom Gettext paths.
From: Artyom Beilis (artyomtnk_at_[hidden])
Date: 2012-08-21 04:52:37


Hello, First of all good job! This this is something that was requested for some time. However I have two points: 1. I'd rather use a single format and not multiple, such that I would use      std::string generator::path_format() const      void generator::path_format(std::string const &);      void generator::set_default_path_format();    Because it makes a complex search that is even today complex even more complex. 2. I'd rather extend the          template<typename CharType>       message_format<CharType> *create_messages_facet(messages_info const &info);     With an additional overload       template<typename CharType>       message_format<CharType> *create_messages_facet(messages_info const &info,std::string const &path_format);     This way it would not affect Boost.Locale's ABI (changing sizeof of messages_info)     3. When you use format          (format(path_formats[k]) % search_paths[i] % paths[j] % lc_cat % domain).str()    It is better to call       (format(path_formats[k]) % search_paths[i] % paths[j] % lc_cat % domain).str(std::locale::classic())    To prevent some problems with global locale or other stuff. Best Regards,   Artyom Beilis -------------- CppCMS - C++ Web Framework:   http://cppcms.com/ CppDB - C++ SQL Connectivity: http://cppcms.com/sql/cppdb/ ----- Original Message ----- > From: Jookia <166291_at_[hidden]> > To: boost_at_[hidden] > Cc: > Sent: Tuesday, August 21, 2012 5:43 AM > Subject: [boost] [locale] Custom Gettext paths. > > Hello! > > I'm extremely happy about Boost.Locale, but I've found a few things > lacking. So at first I wrote a some wrappers to get around a few flaws with my > usage of Boost.Locale. One of these flaws was how it's hardcoded to use the > Gettext directory hierarchy. > > I'd rather store my stuff in 'lang/en_US.mo' rather than > 'lang/en_US/LC_MESSAGES/my_app.mo'. > > The patch adds a 'path format' feature, which allows you to format the > directory structure when finding Gettext catalogs, to achieve the effect above. > All you really have to do is run: > >   gen.add_path_format("{1}/{2}.mo"); // Use a smaller hierarchy. > > to achieve the result that I prefer, or > >   gen.add_path_format("{1}/{2}/{3}/{4}.mo"); // Use a Gettext > hierarchy. > > to achieve the result that Boost.Locale uses right now. Ripped straight from > Doxygen comments: > >   {1} A path to search for catalogs in. >   {2} The locale's name. >   {3} The locale's category. >   {4} The Gettext domain. > > I'm new to submitting patches and things, and I'm not sure how I could > make this feature better or even acceptable if it isn't already, but I'm > sure it'd help others out there. > > There are a few drawbacks I've found with my code: > > - To be backwards compatible I've had to add some hackery to add the Gettext > format if the path formats vector is empty. > > - Without consulting documentation, the format is unreadable. > > - I haven't tested it on the Win32 backend. I'm 90% sure the code would > work, it's only 4 lines of code added and it's identical to the code > added in the other backends, but it's still untested code. > > - It's not tested properly. By properly, I mean the tests past with adding a > format, and falling back to the default format, but I haven't tried having a > 'compact' format. I'm not sure if this would indicate a fault in the > formatting code though, as that'd be the only difference code-wise, unless > there's more code that has the Gettext hierarchy hardcoded, that didn't > fail when I didn't fix the tests. > > The patch itself is based off of SVN r80097, and despite the diff being for > r80104 I haven't tested it in that.. I did the work internally in Git but I > made the patch using SVN, in case that matters. I've attached the patch, but > I'm not sure how well that's going to go over considering I'm new to > mailing lists, and I'm using.. Thunderbird.. Yeah. In case the attachment > fails, it's available at http://sprunge.us/VSiX . I'd also like to know > if it's appropriate to put '[patch]' in the title for any future > patches, and if it should go after '[locale]' or at the end of the > title. > > Thanks, > Jookia. > > > _______________________________________________ > Unsubscribe & other changes: > http://lists.boost.org/mailman/listinfo.cgi/boost >


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