XOOPS RMCommon Utilities  2.1.8.91RC
 All Classes Namespaces Files Functions Variables
l10n.php
Go to the documentation of this file.
1 <?php
9 require RMCPATH.'/class/gettext/gettext.php';
10 require RMCPATH.'/class/gettext/streams.php';
11 
16 function get_locale(){
17  global $exm_locale;
18 
19  if (isset($exm_locale) && $exm_locale!='')
20  return RMEvents::get()->run_event('rmcommon.get_locale', $exm_locale);
21 
22  // Search for a defined constant
23 
24  if (defined('RMCLANG'))
25  $exm_locale = RMCLANG;
26 
27  if ($exm_locale=='')
28  $exm_locale = 'en_US';
29 
30  // Get default locale
31  $exm_locale = RMEvents::get()->run_event('rmcommon.get_locale', $exm_locale);
32 
33  return $exm_locale;
34 }
35 
45 function load_locale_file($domain, $file) {
46  global $l10n;
47 
48  if(isset($l10n[$domain]))
49  return;
50 
51  if ( is_readable($file))
52  $cache = new CachedFileReader($file);
53  else
54  return;
55 
56  $gettext = new gettext_reader($cache);
57 
58  if (isset($l10n[$domain])) {
59  $l10n[$domain]->load_tables();
60  $gettext->load_tables();
61  $l10n[$domain]->cache_translations = array_merge($gettext->cache_translations, $l10n[$domain]->cache_translations);
62  } else
63  $l10n[$domain] = $gettext;
64 
65  unset($input, $gettext);
66 }
67 
76 function load_mod_locale($domain, $prefix=''){
77  $exm_locale = get_locale();
78 
79  if ($domain=='')
80  return;
81 
82  $path = XOOPS_ROOT_PATH.'/modules/'.$domain.'/lang/'.$prefix.$exm_locale.'.mo';
83  load_locale_file($prefix.$domain, $path);
84 
85 }
86 
90 function load_plugin_locale($plugin, $prefix='', $module='rmcommon'){
91  $exm_locale = get_locale();
92 
93  if ($plugin=='') return;
94 
95  $path = XOOPS_ROOT_PATH.'/modules/'.$module.'/plugins/'.$plugin.'/lang/'.$prefix.$exm_locale.'.mo';
96 
97  load_locale_file($prefix.$plugin, $path);
98 
99 }
100 
107 function load_theme_locale($theme, $prefix='', $gui=false){
108  $exm_locale = get_locale();
109  if ($theme=='') return;
110 
111  if ($gui){
112  $path = RMCPATH.'/themes/'.$theme.'/lang/'.$prefix.$exm_locale.'.mo';
113  } else {
114  $path = XOOPS_THEME_PATH.'/'.$theme.'/lang/'.$prefix.$exm_locale.'.mo';
115  }
116  load_locale_file($prefix.$theme, $path);
117 }
118 
122 function translate($text, $domain = 'system'){
123  global $l10n;
124 
125  if (isset($l10n[$domain])){
126  return RMEvents::get()->run_event('rmcommon.get_locale_text', $l10n[$domain]->translate($text), $text, $domain);
127  }else{
128  return RMEvents::get()->run_event('rmcommon.get_locale_text', $text, $text, $domain);
129  }
130 }
131 
139 function _e($text, $domain='rmcommon'){
140  echo translate($text, $domain);
141 }
142 
150 function __($text, $domain='rmcommon'){
151  return translate($text, $domain);
152 }