Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
ZurmoTranslationServerUtil.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
43  {
47  private static $serverDomain = 'http://translate.zurmo.org';
48 
52  private static $infoXmlPath = 'sites/default/files/l10n_packager/l10n_server.xml';
53 
57  private static $l10nInfo;
58 
62  private static $availableLanguages;
63 
69  public static function getServerDomain()
70  {
71  return self::$serverDomain;
72  }
73 
77  private static function getReleaseVersion()
78  {
79  return join('.', array(MAJOR_VERSION, MINOR_VERSION));
80  }
81 
87  protected static function getServerInfo()
88  {
89  if (self::$l10nInfo &&
90  isset(self::$l10nInfo) &&
91  self::$l10nInfo->version == '1.1')
92  {
93  return self::$l10nInfo;
94  }
95 
96  $cacheIdentifier = 'l10nServerInfo';
97  try
98  {
99  // not using default value to save cpu cycles on requests that follow the first exception.
100  self::$l10nInfo = GeneralCache::getEntry($cacheIdentifier);
101  }
102  catch (NotFoundException $e)
103  {
104  $infoFileUrl = self::$serverDomain . '/' . self::$infoXmlPath;
105  $xml = simplexml_load_file($infoFileUrl);
106  self::$l10nInfo = json_decode(json_encode($xml));
107  GeneralCache::cacheEntry($cacheIdentifier, self::$l10nInfo);
108  }
109 
110  if (isset(self::$l10nInfo->version) &&
111  self::$l10nInfo->version == '1.1')
112  {
113  return self::$l10nInfo;
114  }
115 
116  throw new FailedServiceException();
117  }
118 
122  public static function getAvailableLanguages()
123  {
124  if (is_array(self::$availableLanguages) &&
125  !empty(self::$availableLanguages))
126  {
127  return self::$availableLanguages;
128  }
129 
130  try
131  {
132  $l10nInfo = self::getServerInfo();
133  }
134  catch (FailedServiceException $e)
135  {
136  throw new FailedServiceException();
137  }
138 
139  self::$availableLanguages = array();
140  foreach ($l10nInfo->languages->language as $language)
141  {
142  self::$availableLanguages[$language->code] = array(
143  'code' => $language->code,
144  'name' => $language->name,
145  'nativeName' => $language->native,
146  );
147  }
148 
149  if (is_array(self::$availableLanguages) &&
150  !empty(self::$availableLanguages))
151  {
152  return self::$availableLanguages;
153  }
154 
155  throw new FailedServiceException();
156  }
157 
158  protected static function getUrlPattern()
159  {
160  $l10nInfo = self::getServerInfo();
161  return $l10nInfo->update_url;
162  }
163 
167  public static function getPoFileUrl($languageCode)
168  {
169  $availableLanguages = self::getavailableLanguages();
170  if (!empty($availableLanguages) && isset($availableLanguages[$languageCode]))
171  {
172  $urlPattern = self::getUrlPattern();
173  $searchArray = array(
174  '%project' => 'zurmo',
175  '%release' => self::getReleaseVersion(),
176  '%language' => $languageCode
177  );
178 
179  return str_replace(
180  array_keys($searchArray),
181  $searchArray,
182  $urlPattern
183  );
184  }
185 
186  throw new FailedServiceException();
187  }
188  }
189 ?>
Generated on Wed Jul 1 2020 07:10:29
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.