Reputation: 485
Need just a push in the right direction with this.
I'm building a multi-language website in PHP and JavaScript. When using javascript (AJAX) to send comments/messages to the database I need to show a Success or Error message to the user. Because of using 3 different languages, I'm writing the code on each page where I use the code and using PHP language variables to translate the success/error message.
Everything works fine, but when a user looks into the source of the page he will see a long list of functions I'm using for different things on the website.
I would like to include everything in a JS file:
But then the PHP language variables wouldn't work.
The only thing that comes in my mind right now is making different JS files with different languages: myjs_en.js
myjs_fr.js
myjs_nl.js
And checking which language the user has chosen, including one of the 3 files.
Or is there some other option I can use for this?
Thanks for the help!
Upvotes: 0
Views: 890
Reputation: 24579
You would probably be best off providing language support from the server side. If you would like, the Zend_Translate component of Zend_Framework can be used as a standalone library.
According to the documentation:
"In multilingual applications, the content must be translated into several languages and display content depending on the user's language. PHP offers already several ways to handle such problems, however the PHP solution has some problems:
Inconsistent API: There is no single API for the different source formats. The usage of gettext for example is very complicated.
PHP supports only gettext and native array: PHP itself offers only support for array or gettext. All other source formats have to be coded manually, because there is no native support.
No detection of the default language: The default language of the user cannot be detected without deeper knowledge of the backgrounds for the different web browsers.
Gettext is not thread-safe: PHP's gettext library is not thread safe, and it should not be used in a multithreaded environment. This is due to problems with gettext itself, not PHP, but it is an existing problem.
Zend_Translate does not have the above problems. This is why we recommend using Zend_Translate instead of PHP's native functions. The benefits of Zend_Translate are:
Supports multiple source formats: Zend_Translate supports several source formats, including those supported by PHP, and other formats including TMX and CSV files.
Thread-safe gettext: The gettext reader of Zend_Translate is thread-safe. There are no problems using it in multi-threaded environments.
Easy and generic API: The API of Zend_Translate is very simple and requires only a handful of functions. So it's easy to learn and easy to maintain. All source formats are handled the same way, so if the format of your source files change from Gettext to TMX, you only need to change one line of code to specify the storage adapter.
Detection of the user's standard language: The preferred language of the user accessing the site can be detected and used by Zend_Translate.
Automatic source detection: Zend_Translate is capable of detecting and integrating multiple source files and additionally detect the locale to be used depending on directory or filenames."
Upvotes: 3