[ic] Urgent Locale questions

Gert van der Spoel gert at 3edge.com
Sat Jan 23 16:50:38 UTC 2010


> -----Original Message-----
> From: interchange-users-bounces at icdevgroup.org [mailto:interchange-
> users-bounces at icdevgroup.org] On Behalf Of N.E.S.T. Solutions
> Sent: Saturday, January 23, 2010 5:29 PM
> To: interchange-users at icdevgroup.org
> Subject: Re: [ic] Urgent Locale questions
> 
> 
> 
> -----Original Message-----
> From: interchange-users-bounces at icdevgroup.org
> [mailto:interchange-users-bounces at icdevgroup.org] On Behalf Of Gert van
> der
> Spoel
> Sent: Saturday, January 23, 2010 2:42 AM
> To: interchange-users at icdevgroup.org
> Subject: Re: [ic] Urgent Locale questions
> 
> > -----Original Message-----
> > From: interchange-users-bounces at icdevgroup.org [mailto:interchange-
> > users-bounces at icdevgroup.org] On Behalf Of N.E.S.T. Solutions
> > Sent: Saturday, January 23, 2010 8:43 AM
> > To: interchange-users at icdevgroup.org
> > Subject: Re: [ic] Urgent Locale questions
> >
> >
> >
> > -----Original Message-----
> > From: interchange-users-bounces at icdevgroup.org
> > [mailto:interchange-users-bounces at icdevgroup.org] On Behalf Of Gert
> van
> > der
> > Spoel
> > Sent: Friday, January 22, 2010 9:14 AM
> > To: interchange-users at icdevgroup.org
> > Subject: Re: [ic] Urgent Locale questions
> >
> > > -----Original Message-----
> > > From: interchange-users-bounces at icdevgroup.org [mailto:interchange-
> > > users-bounces at icdevgroup.org] On Behalf Of N.E.S.T. Solutions
> > > Sent: Friday, January 22, 2010 8:24 AM
> > > To: interchange-users at icdevgroup.org
> > > Subject: [ic] Urgent Locale questions
> > >
> > >
> > > Hi all,
> > >
> > > I'm trying to setup a multiple language site, and I've got no hair
> > > left!
> > >
> > > I'm running ic 5.6 with the default
> > > <catroot>/dbconf/locales/default.cfg,
> > > along
> > > with the xx_YY.cfg file for each language, which includes :
> > >
> > > Variable CURLOCALE xx_YY
> > > include dbconf/locales/default.cfg
> > >
> > > I have configured my locale table with this to test with xx_YY only
> > for
> > > now:
> > > ProductFiles    products                products_xx_YY
> > > products                de_products     products_xx_YY
> > >
> > > variable.txt has this:
> > > DEFAULT_LOCALE  en_US   Internationalization
> > > LOCALES xx_YY yy_ZZ aa_BB       Internationalization
> > >
> > >
> > > I've created the ./products/products_xx_YY.txt and the
> > > ./dbconf/mysql/products_xx_YY.mysql
> > > With the fields I see that are MAPped in default.cfg, on reconfig,
> my
> > > table
> > > loaded ok with one item to test.
> > >
> > > On the front-end, I view the product from the products_xx_YY
> language
> > > (title, desc, comment) but all
> > > Other fields that are present in products.txt and that are not in
> > > products_xx_YY.txt don't show. I thought
> > > that they would fallback to products.txt if absent or empty.
> > >
> > > I'll also have to do the categories, prod_group, AND (variants?!?).
> > >
> > > I'm now very puzzled with the following 4 questions:
> > >
> > > -- When using a non default locale, does IC fetch ALL fields from
> > > products.txt and then
> > > replace the ones that are mapped only, in the default.cfg? Or do I
> > need
> > > 100%
> > > of the
> > > columns in my locale products_xx_YY files?
> >
> > Have not tried this, but does the following line not provide the
> > columns
> > that you want to have MAPed with the non-translated content:
> > Database products MAP_OPTIONS share __CURLOCALE__
> > products___CURLOCALE__
> > area area___CURLOCALE__ cat cat___CURLOCALE__
> >
> > So the area and cat would be used from products.txt  and not part of
> > products_xx_YY.txt
> > (now area and cat do not exist in the standard products table so the
> > above
> > line probably does jack).
> >
> > > -- For cat and prod_group, do I have to create cat_xx_YY and
> > > prod_group_xx_YY also the
> > > same as I did for the products?
> >
> > If you have something to translate then yes you should follow the
> same
> > scheme ... for all columns that do not need localization I thing you
> > can go
> > with MAP_OPTIONS share  again ..
> >
> > > -- I see the options mapped in default.cfg, do I have to map the
> > > variants
> > > also to
> > > be able to localize variants?
> >
> > Either that or you could attempt to use [msg]  or [L]  tags  and the
> > locale
> > table to translate specific words/phrases ...
> > You might actually want to go for the translation tag as in your
> order
> > management system you would probably want to keep your options
> > non-translated .. so when someone orders a Red t-shirt, it will not
> > become
> > Rot when the order is made with the german locale.
> >
> > >
> > > -- All together, once everything will be working, does the MAP in
> the
> > > default.cfg instruct
> > > IC to populate all locale files (products_xx_YY.txt,
> > options_xx_YY.txt,
> > > variants_xx_YY.txt ?   )
> > > when creating a new product? Or do these files have to be done
> > > manually/otherwise?
> >
> > When you create a new product and add only the standard stuff in the
> > admin
> > then I do not think it will populate any of the xx_YY tables and also
> > think
> > it should not as you might not want to have English text in locale
> > tables ..
> >
> >
> > What I for example have in my admin is additional tabs with the
> locale
> > .. so
> > my first tab has the content of products and I have a tab 'Greek' and
> a
> > tab
> > 'Dutch' and clicking those tabs I get the fields for the xx_YY.txt
> > table and
> > enter my data there aswell ...
> >
> > >
> > > I propose to write the full manual on this once I get it straight,
> > > seems to
> > > be lacking a
> > > good How-To on this subject.
> > >
> > > Thanks in advance for your help, I'm desperate to figure this out
> > > Martin
> >
> >
> > Hi Gert, Thank you for your help.
> >
> > I've done all products_xx_YY.txt the same as products.txt for each
> > language
> > now, and also I did the following in dbconf/locale/default.cfg for
> each
> > fields. These are for images, so I want to have the field fallback to
> > the
> > products.txt table, seems that it doesn't fallback in any case
> >
> > Database products MAP image0 __CURLOCALE__
> > products___CURLOCALE__::image0
> > Database products MAP image0 fallback 1
> >
> > But it doesn't work. I tried this also, with and without the above
> > lines:
> >
> > Database products MAP_OPTIONS share __CURLOCALE__
> > products___CURLOCALE__
> > area area___CURLOCALE__ cat cat___CURLOCALE__ image0
> > image0___CURLOCALE__
> >
> > That didn't work either. I even tried to map directly to
> > products::image0
> > with this:
> >
> > Database products MAP image0 __CURLOCALE__ products::image0
> > ...or this...
> > Database products MAP image0 products::image0
> > ...or this...
> > Database products__CURLOCALE__ MAP image0 products::image0
> > ...or this...
> > Database products__CURLOCALE__ MAP __CURLOCALE__ image0
> > products::image0
> >
> >
> > All those combinations do absolutely nothing, not even a log entry in
> > the
> > error log.
> >
> > Throughout these attempts, I updated my DB field in the database in
> > between
> > the various tests, and the image popped up on the web page...  so,
> it's
> > definitely looking up in the products_xx_YY database table.
> >
> > I tend to think that the line "Database products MAP image0 fallback
> 1"
> > means to make it fallback to products.txt, but it just doesn't and I
> > can't
> > find documentation for it.
> 
> Yes it should fallback to the original table and the technique works in
> itself (I use it).
> I wonder if you only tried to actually see/not see the image and did
> not
> look at the particular output.
> 
> So [data table=products column=image0 key="..."]  (where ... is a sku),
> will
> this print any output?
> It should print the output of the data in products_xx_YY.txt , field
> image0
> with sku=...
> If this field is empty it falls back to the data in products_xx_YY.txt
> q
> In case this does not work, does it still show the other translations?
> If not then your config file is broken. You could use Debug and create
> a
> xxx.structure file to see what it builds up.
> 
> CU,
> 
> Gert
> 
> 
> Hi Gert,
> 
> I put [data table=products column=image0 key="1234"] and I was getting
> only
> the data from the specific table, changing it to table=products_xx_YY
> would
> give me the data from the products_XX_YY table directly.
> 
> Using [field products 1234] does give me the right data for the locale,
> but
> still, doesn't fallback to products table when field is empty.
> 
> I also put [debug] [/debug] around my code and it outputs only the
> resulting
> 
> data in the log, same as I see on my test page, no errors.
> 
> Now I wonder if I specified the sql defs properly in the cfg files.
> 
> For each language I have:
> ./dbconf/mysql/products_xx_YY.mysql = FULL config, just like
> products.mysql
> 
> For each column in products.txt,
> ./dbconf/locale/default.cfg = I added the following for each field:
> 
> Database products MAP img_P_N00 __CURLOCALE__
> products___CURLOCALE__::img_P_N00
> Database products MAP img_P_N00 fallback 1
> ... further down in the dsn section...
> Database products___CURLOCALE__ COLUMN_DEF "img_P_L00=varchar(32)
> DEFAULT
> 'noimage.gif' NOT NULL"

In my mailreader the Database products MAP img_P_N00 __CURLOCALE
products_... etc  and
Database products MAP .... fallback 1 are showing up on the same line.
In case your data file is like that then that could be a problem with the
fallback not working.
Check for windows vs unix newlines just in case ... Probably not it, but who
knows.

> 
> Should I only specify the "img_P_L00=varchar(32) DEFAULT 'noimage.gif'
> NOT
> NULL" in one of the 2 files, or both are required?
> 
> For now, I'm reverting back to original config files, and will test
> with the
> 
> basic fields all over again to make sure the fallback works. I don't
> thing
> it ever did work...
> 
> I appreciate your help Gert, this is a nightmare ;(
> 
> Many thanks again
> Martin
> 




More information about the interchange-users mailing list