Just for clarification:
Zenphoto does two things in dealing with local languages.
First, it uses gettext() calls for all text so that localization can be made from the .mo & .po files are required for this stage. But incomplete (empty?) files can work to an extent. Of course, only text strings for which there are translations will display in the local language. Others will display in English.
Second, Zenphoto sets the "locale" via a setLocale() function call to tell PHP and the Server what language (locale) is to be used. Certain strings, particularly the Date strings are produced by the PHP runtime and are based on this locale setting.
Setting the locale can fail if the server does not support the desired locale. If you select the language from the back-end you should see an error message about the failure. The automatic setting of locale, such as from the HTTP Accept Language of the browser may happen in places where the error message display does not go to the browser.
If the locale setting fails, the language will not be available. There is a define at the beginning of functions-i18n.php for `DEBUG_LOCALE`. Setting this to the value `true` will produce debug log records which may help in diagnosing locale issues.