On Thu, 19 Mar 2009, Graeme Geldenhuys wrote:
> On Thu, Mar 19, 2009 at 10:55 AM, ik <ido...@gmail.com> wrote: > > The locale itself is not just ascii based files, there are compiled > > files, so you will require to re-implement the way of reading the data > > inside the compiled files. > > I'm not talking about the "compiled binary files", I am talking about > the text based locale files. On my Linux Ubuntu 7.10 system they are > include in the 'locales' package and are install in the following > directory location: > /usr/share/i18n/locales/* > > eg: > usr/share/i18n/locales/wo_SN > /usr/share/i18n/locales/xh_ZA > /usr/share/i18n/locales/yi_US > /usr/share/i18n/locales/zh_CN > /usr/share/i18n/locales/zh_HK > /usr/share/i18n/locales/zh_SG > /usr/share/i18n/locales/zh_TW > /usr/share/i18n/locales/zu_ZA > > > For example here in Israel our first work day in the week is Sunday > > and not Monday, so you will need to work with it. Also our date format > > is dd/mm/yyyy and not mm/dd/yyyy or yyyy/mm/dd > > etc.. Currency separator is comma, the actual names of things are in > > Here is the details of the /usr/share/i18n/locales/he_IL file: > > ----------------[ he_IL ]----------------------- > <.....snip......> > LC_MONETARY > int_curr_symbol "<U0049><U004C><U0053><U0020>" > currency_symbol "<U05E9><U05D7>" > mon_decimal_point "<U002E>" > mon_thousands_sep "<U002C>" > mon_grouping 3;3 > positive_sign "" > negative_sign "<U002D>" > int_frac_digits 2 > frac_digits 2 > p_cs_precedes 1 > p_sep_by_space 1 > n_cs_precedes 1 > n_sep_by_space 1 > p_sign_posn 2 > n_sign_posn 2 > END LC_MONETARY > > <.....snip....> > > LC_TIME > <...snip....> > d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" > t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>" > first_weekday 1 > END LC_TIME > > <....snip....> > ----------------------[ end ]--------------- > > > For example: South Africa's date format is also dd/mm/yyyy and is > defined as follows: > > % Date representation to be referenced by the "%x" field descriptor - > % "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000). > d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>" > > > Hebrew, so for each locale you will require to re-implement all of > > this rules. That's why using the libc functions is better. > > All the locale information seems to be in those text files (date, > time, paper size, day;week;month names, measurements, names, addresses > etc.). It's just a matter of parsing them and populating the locale > variables in FPC. No external programs or libraries are required. > > As per fpGUI Toolkit's design rules: I hate 3rd party requirements! :-) > > BTW: Does FPC's locale variables cover all the locale categories? For example: > > category "en_ZA:2003";LC_IDENTIFICATION > category "en_ZA:2000";LC_CTYPE > category "en_ZA:2000";LC_COLLATE > category "en_ZA:2003";LC_TIME > category "en_ZA:2000";LC_NUMERIC > category "en_ZA:2000";LC_MONETARY > category "en_ZA:2003";LC_MESSAGES > category "en_ZA:2000";LC_PAPER > category "en_ZA:2000";LC_MEASUREMENT > category "en_ZA:2003";LC_NAME > category "en_ZA:2003";LC_ADDRESS > category "en_ZA:2003";LC_TELEPHONE > > If not, can we extend the FPC locale variable to include salutation > (names), telephone, measurement, paper sizes etc.. In that case I think we better start a 'locale' unit. I don't want to burden SysUtils with even more stuff. Michael. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal