[Catalyst] Ideas on localisation

Ian Docherty ian at iandocherty.com
Mon Nov 6 14:26:35 GMT 2006


I have been investigation options for localisation and it occurs to me 
to use something like Catalyst::Plugin::I18N

My understanding of this package is that you create a language package 
for each language you want to support. e.g.

MyApp::I18N::de
MyApp::I18N::fr
etc.

However, this seems to lump together all the text for all the pages into 
one file. This would seem to have two problems.

1) Each language is a huge file containing all the text for all pages of 
the application lumped all together. Managing this one file becomes 
difficult.

2) We have to load all the text for all the pages at once. This is like 
loading every template in the system just to display one page.

Would it not make more sense to have a structure that more closely 
follows the hierarchy of either the root directory or the controller 
hierarchy. e.g.

MyApp::I18N::User::List::de
MyApp::I18N::User::List::fr
MyApp::I18N::User::Edit::de
MyApp::I18N::User::Edit::fr
MyApp::I18N::User::View::de
MyApp::I18N::User::View::fr

etc.

Alternatively (and this is an option I prefer) have a way of loading the 
language text from a database. I would then load all text from the 
database that matched the URI 'user/list' (and any common text such as 
header and footer text) and make that available to the I18N module.

Has anyone done anything like this in the past?

Regards
Ian C.Docherty (IcyDee)









More information about the Catalyst mailing list