Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
ZurmoMessageSourceUtil.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 
41  {
52  public static function importOneMessage($languageCode, $category, $source, $translation)
53  {
54  assert('is_string($languageCode) && !empty($languageCode)');
55  assert('is_string($category) && !empty($category)');
56  assert('is_string($source) && !empty($source)');
57  assert('is_string($translation) && !empty($translation)');
58  if (
59  !is_string($languageCode) || empty($languageCode) ||
60  !is_string($category) || empty($category) ||
61  !is_string($source) || empty($source) ||
62  !is_string($translation) || empty($translation)
63  )
64  {
65  throw new NotSupportedException();
66  }
67  try
68  {
69  $sourceModel = MessageSource::getByCategoryAndSource($category, $source);
70  }
71  catch (NotFoundException $e)
72  {
73  $sourceModel = MessageSource::addNewSource($category, $source);
74  }
75 
76  try
77  {
78  $translationModel = MessageTranslation::getBySourceIdAndLangCode($sourceModel->id, $languageCode);
79  $translationModel->updateTranslation($translation);
80  }
81  catch (NotFoundException $e)
82  {
83  $translationModel = MessageTranslation::addNewTranslation(
84  $languageCode,
85  $sourceModel,
86  $translation
87  );
88  }
89 
90  return $translationModel->id;
91  }
92 
103  public static function importMessagesArray($languageCode, $category, $messages)
104  {
105  assert('is_string($languageCode) && !empty($languageCode)');
106  assert('is_string($category) && !empty($category)');
107  assert('is_array($messages) && !empty($messages)');
108  if (
109  !is_string($languageCode) || empty($languageCode) ||
110  !is_string($category) || empty($category) ||
111  !is_array($messages) || empty($messages)
112  )
113  {
114  throw new NotSupportedException();
115  }
116  ZurmoMessageSource::clearCache($category, $languageCode);
117  foreach ($messages as $source => $translation)
118  {
119  self::importOneMessage(
120  $languageCode,
121  $category,
122  $source,
123  $translation
124  );
125  }
126 
127  return true;
128  }
129 
138  public static function importPoFile($languageCode, $messageFile)
139  {
140  assert('is_string($languageCode) && !empty($languageCode)');
141  if (!is_string($languageCode) || empty($languageCode))
142  {
143  throw new NotSupportedException();
144  }
145 
146  $file = new ZurmoGettextPoFile($messageFile);
147  $messages = $file->read();
148  $categories = array();
149  foreach ($messages as $message)
150  {
151  if (!in_array($message['msgctxt'], $categories))
152  {
153  $categories[] = $message['msgctxt'];
154  }
155  self::importOneMessage(
156  $languageCode,
157  $message['msgctxt'],
158  $message['msgid'],
159  $message['msgstr']
160  );
161  }
162  foreach ($categories as $category)
163  {
164  ZurmoMessageSource::clearCache($category, $languageCode);
165  }
166  return true;
167  }
168  }
169 ?>
static importPoFile($languageCode, $messageFile)
static addNewSource($category, $source)
static getByCategoryAndSource($category, $source, $modelClassName=null)
static getBySourceIdAndLangCode($sourceId, $languageCode, $modelClassName=null)
static importOneMessage($languageCode, $category, $source, $translation)
static addNewTranslation($languageCode, $sourceModel, $translation)
static importMessagesArray($languageCode, $category, $messages)
Generated on Sun Jul 12 2020 07:10:28
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.