CodeIgniter Forums
How to organize views for different languages - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived General Discussion (https://forum.codeigniter.com/forumdisplay.php?fid=21)
+--- Thread: How to organize views for different languages (/showthread.php?tid=59797)



How to organize views for different languages - El Forum - 11-20-2013

[eluser]axelf[/eluser]
Hi,

how should i organize my views for many languages?

Code:
views/en/myview.php
views/es/myview.php

or

Code:
views/en_myview.php
views/es_myview.php

I want to load the views dynamically, dependend on the language. Could it be a problem if i have 2 files with the same name (only in different folders). Perhaps there is a better way to do that?


How to organize views for different languages - El Forum - 11-20-2013

[eluser]CroNiX[/eluser]
Either would work and I guess it comes down to preference. No it wouldn't be a problem to have the same file name in different folders.

Code:
$lang = 'es'; //I imagine you have a similar variable defined somewhere
$this->load->view($lang .'/my_view');//load the view for this controller from it's language dir

or
Code:
$lang = 'es_';
$this->load->view($lang . 'my_view');

If every single page on your whole site will have this language convention, it might be better to extend the Loader class (MY_Loader) and override the view method with your own to automatically append your language to the beginning of the filename (or directory) so you don't have to manually set it everywhere. Or create an additional method specifically for loading language views so you can still use the original, if needed.

I'd probably DEFINE the language somewhere. Then in the loader, check to see if it's defined. If not, you can use some default language. If it is it will just use it.


How to organize views for different languages - El Forum - 11-20-2013

[eluser]axelf[/eluser]
Hi CroNiX,

thank you for your great help. I'm relative new to CI. Modifying the view-method is a really good tip. i didn't use it until now.


How to organize views for different languages - El Forum - 11-20-2013

[eluser]CroNiX[/eluser]
Sure thing. I modified my response a bit to mention possibly creating an additional method instead of overriding the original, just in case you need the original.