PHP Gettext: how to change the default MO path aft

2019-06-21 04:51发布

问题:

I use PHP Gettext extension for localizing a Web app. When you do:

bindtextdomain("example", "/locales");

If you're setting the locale to fr_FR, it will look for the MO in:

/locales/fr_FR/LC_MESSAGES/example.mo

Is there a way to customize that path? For instance I would like to use the following structure:

/locales/example.fr_FR.mo

回答1:

The directory structure is fixed by gettext.

Because many different languages for many different packages have to be stored we need some way to add these information to file message catalog files. The way usually used in Unix environments is have this encoding in the file name. This is also done here. The directory name given in bindtextdomains second argument (or the default directory), followed by the name of the locale, the locale category, and the domain name are concatenated:

dir_name/locale/LC_category/domain_name.mo