information about changes
[squirrelmail.git] / functions / gettext.php
1 <?php
2 /**
3 * SquirrelMail internal gettext functions
4 *
5 * Uses php-gettext classes
6 * @copyright (c) 1999-2005 The SquirrelMail Project Team
7 * @license http://opensource.org/licenses/gpl-license.php GNU Public Licens
8 * @link http://www.php.net/gettext Original php gettext manual
9 * @link http://savannah.nongnu.org/projects/php-gettext php-gettext classes
10 * @version $Id$
11 * @package squirrelmail
12 * @subpackage i18n
13 */
14
15 /** Almost everything requires global.php... */
16 require_once(SM_PATH . 'functions/global.php');
17
18 /** Load classes and other functions */
19 include_once(SM_PATH . 'class/l10n.class.php');
20 include_once(SM_PATH . 'functions/ngettext.php');
21
22 /**
23 * Alternative php gettext function (short form)
24 *
25 * @link http://www.php.net/function.gettext
26 *
27 * @param string $str English string
28 * @return string translated string
29 */
30 function _($str) {
31 global $l10n, $gettext_domain;
32 if ($l10n[$gettext_domain]->error==1) return $str;
33 return $l10n[$gettext_domain]->translate($str);
34 }
35
36 /**
37 * Alternative php bindtextdomain function
38 *
39 * Sets path to directory containing domain translations
40 *
41 * @link http://www.php.net/function.bindtextdomain
42 * @param string $domain gettext domain name
43 * @param string $dir directory that contains all translations
44 * @return string path to translation directory
45 */
46 function bindtextdomain($domain, $dir) {
47 global $l10n, $sm_notAlias;
48 if (substr($dir, -1) != '/') $dir .= '/';
49 $mofile=$dir . $sm_notAlias . '/LC_MESSAGES/' . $domain . '.mo';
50
51 $input = new FileReader($mofile);
52 $l10n[$domain] = new gettext_reader($input);
53
54 return $dir;
55 }
56
57 /**
58 * Alternative php textdomain function
59 *
60 * Sets default domain name
61 *
62 * @link http://www.php.net/function.textdomain
63 * @param string $name gettext domain name
64 * @return string gettext domain name
65 */
66 function textdomain($name = false) {
67 global $gettext_domain;
68 if ($name) $gettext_domain=$name;
69 return $gettext_domain;
70 }
71 ?>