16.9.1 Problem
16.9.2 Solution
Dynamically modify the include_path once you've
determined the appropriate locale:
$base = '/usr/local/php-include';
$LANG = 'en_US';
$include_path = ini_get('include_path');
ini_set('include_path',"$base/$LANG:$base/global:$include_path");
16.9.3 Discussion
The $base variable holds the name of the base
directory for your included localized files. Files that are not locale-specific
go in the global subdirectory of $base,
and locale-specific files go in a subdirectory named after their locale (e.g.,
en_US). Prepending the locale-specific directory
and then the global directory to the include path makes them the first two
places PHP looks when you include a file. Putting the locale-specific directory
first ensures that nonlocalized information is loaded only if localized
information isn't available.
This technique is similar to what the img( ) function
does in the Section
16.8. Here, however, you can take advantage of PHP's include_path feature to have the directory searching happen
automatically. For maximum utility, reset include_path as early as
possible in your code, preferably at the top of a file loaded via
auto_prepend_file on every request.