Version Notes
Improve source and target store selection in all translation forms
Download this release
Release Info
Developer | Transfluent Ltd |
Extension | Transfluent |
Version | 1.5.0 |
Comparing to | |
See all releases |
Code changes from version 1.4.8 to 1.5.0
- app/code/community/Transfluent/Translate/Helper/Languages.php +86 -30
- app/code/community/Transfluent/Translate/controllers/TranslationController.php +1 -0
- app/code/community/Transfluent/Translate/etc/config.xml +1 -1
- app/code/community/Transfluent/Translate/etc/system.xml +1 -1
- app/design/adminhtml/default/default/template/transfluent/order/category_step1.phtml +7 -2
- app/design/adminhtml/default/default/template/transfluent/order/cms_step1.phtml +7 -2
- app/design/adminhtml/default/default/template/transfluent/product/attributes/edit.phtml +28 -3
- app/design/adminhtml/default/default/template/transfluent/product/category/edit.phtml +39 -3
- package.xml +5 -5
app/code/community/Transfluent/Translate/Helper/Languages.php
CHANGED
@@ -77,36 +77,80 @@ EOFJSON;
|
|
77 |
}
|
78 |
|
79 |
public function getSourceLanguageSelectHtmlForStores($stores) {
|
|
|
|
|
80 |
$default_source_language_id = Mage::getStoreConfig('transfluenttranslate/transfluenttranslate_settings/transfluent_default_language');
|
81 |
$html = '<select id="translateto" class="translateto_select">';
|
|
|
82 |
foreach ($stores AS $store) {
|
83 |
/** @var Mage_Core_Model_Store $store */
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
}
|
90 |
-
$is_selected = ($default_source_language_id == $language_id);
|
91 |
-
$html .= '<option value="' . $store->getId() . '"' . ($is_selected ? ' selected="SELECTED"' : '') . '>' . $this->getLanguageNameByCode($store_language, true) . ' (' . $store->getName() . ')</option>';
|
92 |
}
|
93 |
$html .= '</select>';
|
94 |
return $html;
|
95 |
}
|
96 |
|
97 |
public function getSourceLanguageSelectHtml($stores) {
|
|
|
|
|
98 |
$default_source_language_id = Mage::getStoreConfig('transfluenttranslate/transfluenttranslate_settings/transfluent_default_language');
|
99 |
$html = '<select id="store_language" class="translateto_select">';
|
|
|
100 |
foreach ($stores AS $store_id) {
|
101 |
$store = Mage::app()->getStore($store_id);
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
}
|
108 |
-
$is_selected = ($default_source_language_id == $language_id);
|
109 |
-
$html .= '<option value="' . $store_id . '"' . ($is_selected ? ' selected="SELECTED"' : '') . '>' . $store->getName() . ' (' . $this->getLanguageNameByCode($language_code, true) . ')</option>';
|
110 |
}
|
111 |
$html .= '</select>';
|
112 |
return $html;
|
@@ -162,28 +206,40 @@ EOFJSON;
|
|
162 |
}
|
163 |
|
164 |
public function getSourceLanguageArray($store_ids, $default_source_language_id = null) {
|
|
|
|
|
165 |
$languages = array();
|
166 |
$selected_language = null;
|
167 |
$selected_language_store_id = null;
|
168 |
-
|
|
|
169 |
$store = Mage::app()->getStore($store_id);
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
// Language is unsupported
|
174 |
-
continue;
|
175 |
-
}
|
176 |
-
if (!$selected_language && $language_id == $default_source_language_id) {
|
177 |
-
$selected_language = $store->getName() . ' (' . $this->getLanguageNameByCode($language_code, true) . ')';
|
178 |
-
$selected_language_store_id = $store->getId();
|
179 |
-
continue;
|
180 |
}
|
181 |
-
$
|
182 |
}
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
}
|
188 |
return $languages;
|
189 |
}
|
77 |
}
|
78 |
|
79 |
public function getSourceLanguageSelectHtmlForStores($stores) {
|
80 |
+
$helper = Mage::helper('transfluenttranslate/languages');
|
81 |
+
/** @var Transfluent_Translate_Helper_Languages $helper */
|
82 |
$default_source_language_id = Mage::getStoreConfig('transfluenttranslate/transfluenttranslate_settings/transfluent_default_language');
|
83 |
$html = '<select id="translateto" class="translateto_select">';
|
84 |
+
$stores_by_websites = array();
|
85 |
foreach ($stores AS $store) {
|
86 |
/** @var Mage_Core_Model_Store $store */
|
87 |
+
if (!isset($stores_by_websites[$store->getWebsiteId()])) {
|
88 |
+
$stores_by_websites[$store->getWebsiteId()] = array();
|
89 |
+
}
|
90 |
+
$stores_by_websites[$store->getWebsiteId()][] = $store;
|
91 |
+
}
|
92 |
+
$current_website = null;
|
93 |
+
$current_store_frontend_name = null;
|
94 |
+
foreach ($stores_by_websites AS $website_id => $website_stores) {
|
95 |
+
foreach ($website_stores AS $store) {
|
96 |
+
/** @var Mage_Core_Model_Store $store */
|
97 |
+
$store_language = $this->GetStoreLocale($store->getCode());
|
98 |
+
$language_id = $this->getLangByCode($store_language, true);
|
99 |
+
if (is_null($language_id)) {
|
100 |
+
// Language is unsupported
|
101 |
+
continue;
|
102 |
+
}
|
103 |
+
if (!$current_website || $current_website != $website_id) {
|
104 |
+
$current_website = $website_id;
|
105 |
+
$html .= '<optgroup label="' . $store->getWebsite()->getName() . '"></optgroup>';
|
106 |
+
}
|
107 |
+
if (!$current_store_frontend_name || $current_store_frontend_name != $store->getFrontendName()) {
|
108 |
+
$html .= '<optgroup label=" ' . $store->getFrontendName() . '"></optgroup>';
|
109 |
+
$current_store_frontend_name = $store->getFrontendName();
|
110 |
+
}
|
111 |
+
$is_selected = ($default_source_language_id == $language_id);
|
112 |
+
$html .= '<option value="' . $store->getId() . '"' . ($is_selected ? ' selected="SELECTED"' : '') . '> ' . $store->getName() . ' (' . Mage::getStoreConfig('general/locale/code', $store->getId()) . '; ' . $helper->getLanguageNameByCode(Mage::getStoreConfig('general/locale/code', $store->getId()), true) . ')</option>';
|
113 |
}
|
|
|
|
|
114 |
}
|
115 |
$html .= '</select>';
|
116 |
return $html;
|
117 |
}
|
118 |
|
119 |
public function getSourceLanguageSelectHtml($stores) {
|
120 |
+
$helper = Mage::helper('transfluenttranslate/languages');
|
121 |
+
/** @var Transfluent_Translate_Helper_Languages $helper */
|
122 |
$default_source_language_id = Mage::getStoreConfig('transfluenttranslate/transfluenttranslate_settings/transfluent_default_language');
|
123 |
$html = '<select id="store_language" class="translateto_select">';
|
124 |
+
$stores_by_websites = array();
|
125 |
foreach ($stores AS $store_id) {
|
126 |
$store = Mage::app()->getStore($store_id);
|
127 |
+
/** @var Mage_Core_Model_Store $store */
|
128 |
+
if (!isset($stores_by_websites[$store->getWebsiteId()])) {
|
129 |
+
$stores_by_websites[$store->getWebsiteId()] = array();
|
130 |
+
}
|
131 |
+
$stores_by_websites[$store->getWebsiteId()][] = $store;
|
132 |
+
}
|
133 |
+
$current_website = null;
|
134 |
+
$current_store_frontend_name = null;
|
135 |
+
foreach ($stores_by_websites AS $website_id => $website_stores) {
|
136 |
+
foreach ($website_stores AS $store) {
|
137 |
+
$language_code = $this->GetStoreLocale($store->getId());
|
138 |
+
$language_id = $this->getLangByCode($language_code, true);
|
139 |
+
if (is_null($language_id)) {
|
140 |
+
// Language is unsupported
|
141 |
+
continue;
|
142 |
+
}
|
143 |
+
if (!$current_website || $current_website != $website_id) {
|
144 |
+
$current_website = $website_id;
|
145 |
+
$html .= '<optgroup label="' . $store->getWebsite()->getName() . '"></optgroup>';
|
146 |
+
}
|
147 |
+
if (!$current_store_frontend_name || $current_store_frontend_name != $store->getFrontendName()) {
|
148 |
+
$html .= '<optgroup label=" ' . $store->getFrontendName() . '"></optgroup>';
|
149 |
+
$current_store_frontend_name = $store->getFrontendName();
|
150 |
+
}
|
151 |
+
$is_selected = ($default_source_language_id == $language_id);
|
152 |
+
$html .= '<option value="' . $store->getId() . '"' . ($is_selected ? ' selected="SELECTED"' : '') . '> ' . $store->getName() . ' (' . Mage::getStoreConfig('general/locale/code', $store->getId()) . '; ' . $helper->getLanguageNameByCode(Mage::getStoreConfig('general/locale/code', $store->getId()), true) . ')</option>';
|
153 |
}
|
|
|
|
|
154 |
}
|
155 |
$html .= '</select>';
|
156 |
return $html;
|
206 |
}
|
207 |
|
208 |
public function getSourceLanguageArray($store_ids, $default_source_language_id = null) {
|
209 |
+
$helper = Mage::helper('transfluenttranslate/languages');
|
210 |
+
/** @var Transfluent_Translate_Helper_Languages $helper */
|
211 |
$languages = array();
|
212 |
$selected_language = null;
|
213 |
$selected_language_store_id = null;
|
214 |
+
$stores_by_websites = array();
|
215 |
+
foreach ($store_ids AS $store_id) {
|
216 |
$store = Mage::app()->getStore($store_id);
|
217 |
+
/** @var Mage_Core_Model_Store $store */
|
218 |
+
if (!isset($stores_by_websites[$store->getWebsiteId()])) {
|
219 |
+
$stores_by_websites[$store->getWebsiteId()] = array();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
}
|
221 |
+
$stores_by_websites[$store->getWebsiteId()][] = $store;
|
222 |
}
|
223 |
+
$current_website = null;
|
224 |
+
$current_store_frontend_name = null;
|
225 |
+
foreach ($stores_by_websites AS $website_id => $website_stores) {
|
226 |
+
foreach ($website_stores AS $store) {
|
227 |
+
$language_code = $this->GetStoreLocale($store->getId());
|
228 |
+
$language_id = $this->getLangByCode($language_code, true);
|
229 |
+
if (is_null($language_id)) {
|
230 |
+
// Language is unsupported
|
231 |
+
continue;
|
232 |
+
}
|
233 |
+
if (!$current_website || $current_website != $website_id) {
|
234 |
+
$current_website = $website_id;
|
235 |
+
$languages['website-' . $store->getWebsite()->getId()] = '' . $store->getWebsite()->getName() . '';
|
236 |
+
}
|
237 |
+
if (!$current_store_frontend_name || $current_store_frontend_name != $store->getFrontendName()) {
|
238 |
+
$languages['front-' . $store->getId()] = ' ' . $store->getFrontendName() . '';
|
239 |
+
$current_store_frontend_name = $store->getFrontendName();
|
240 |
+
}
|
241 |
+
$languages[(string)$store->getId()] = ' ' . $store->getName() . ' (' . Mage::getStoreConfig('general/locale/code', $store->getId()) . '; ' . $helper->getLanguageNameByCode(Mage::getStoreConfig('general/locale/code', $store->getId()), true) . ')';
|
242 |
+
}
|
243 |
}
|
244 |
return $languages;
|
245 |
}
|
app/code/community/Transfluent/Translate/controllers/TranslationController.php
CHANGED
@@ -385,6 +385,7 @@ class Transfluent_Translate_TranslationController extends Mage_Core_Controller_F
|
|
385 |
'base_url' => $store->getBaseUrl(),
|
386 |
'name' => $store->getFrontendName(),
|
387 |
'active' => $store->getIsActive() ? 'yes' : 'no',
|
|
|
388 |
);
|
389 |
}
|
390 |
}
|
385 |
'base_url' => $store->getBaseUrl(),
|
386 |
'name' => $store->getFrontendName(),
|
387 |
'active' => $store->getIsActive() ? 'yes' : 'no',
|
388 |
+
'locale' => Mage::getStoreConfig('general/locale/code', $store->getId()),
|
389 |
);
|
390 |
}
|
391 |
}
|
app/code/community/Transfluent/Translate/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Transfluent_Translate>
|
5 |
-
<version>1.
|
6 |
</Transfluent_Translate>
|
7 |
</modules>
|
8 |
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Transfluent_Translate>
|
5 |
+
<version>1.5.0</version>
|
6 |
</Transfluent_Translate>
|
7 |
</modules>
|
8 |
|
app/code/community/Transfluent/Translate/etc/system.xml
CHANGED
@@ -112,7 +112,7 @@
|
|
112 |
or visit <a href="https://www.transfluent.com/my-account/#/creditcard" target="_blank">your Transfluent account page</a> to setup a credit card.
|
113 |
</p>
|
114 |
<strong>Support:</strong> <a href="mailto:support@transfluent.com">support@transfluent.com</a><br>
|
115 |
-
<strong>Extension version:</strong> 1.
|
116 |
<strong>Extension homepage:</strong> <a href="http://www.transfluent.com/products/magento/">transfluent.com/products/magento</a>
|
117 |
]]></comment>
|
118 |
<fields>
|
112 |
or visit <a href="https://www.transfluent.com/my-account/#/creditcard" target="_blank">your Transfluent account page</a> to setup a credit card.
|
113 |
</p>
|
114 |
<strong>Support:</strong> <a href="mailto:support@transfluent.com">support@transfluent.com</a><br>
|
115 |
+
<strong>Extension version:</strong> 1.5.0<br>
|
116 |
<strong>Extension homepage:</strong> <a href="http://www.transfluent.com/products/magento/">transfluent.com/products/magento</a>
|
117 |
]]></comment>
|
118 |
<fields>
|
app/design/adminhtml/default/default/template/transfluent/order/category_step1.phtml
CHANGED
@@ -47,12 +47,17 @@ $collision_strategy = $this->getRequest()->getParam('collision');
|
|
47 |
$website_default_store_id = $website_default_store->getId();
|
48 |
unset($website_default_store);
|
49 |
$stores = $website->getStores();
|
|
|
50 |
foreach ($stores AS $store) {
|
51 |
/** @var Mage_Core_Model_Store $store */
|
|
|
|
|
|
|
|
|
52 |
$store_locale_code = $languageHelper->GetStoreLocale($store->getCode());
|
53 |
$selected_source = (!$source && $store->getId() == $website_default_store_id || $source == $store->getId());
|
54 |
$selected_target = ($target && $store->getId() == $target);
|
55 |
-
$website_dropdown_options .= '<option value="' . $store->getId() . '" ' . ($selected_source ? 'SOURCE-SELECTED' : '') . ($selected_target ? 'TARGET-SELECTED' : '') . '> ' . htmlspecialchars($store->getName()) . ' (' . $languageHelper->getLanguageNameByCode($store_locale_code, true) . ', ' . $store_locale_code . ')</option>';
|
56 |
}
|
57 |
}
|
58 |
?>
|
@@ -92,7 +97,7 @@ $collision_strategy = $this->getRequest()->getParam('collision');
|
|
92 |
</tbody>
|
93 |
</table>
|
94 |
<p>
|
95 |
-
|
96 |
</p>
|
97 |
</div>
|
98 |
</div>
|
47 |
$website_default_store_id = $website_default_store->getId();
|
48 |
unset($website_default_store);
|
49 |
$stores = $website->getStores();
|
50 |
+
$current_store_frontend_name = null;
|
51 |
foreach ($stores AS $store) {
|
52 |
/** @var Mage_Core_Model_Store $store */
|
53 |
+
if (!$current_store_frontend_name || $current_store_frontend_name != $store->getFrontendName()) {
|
54 |
+
$website_dropdown_options .= '<optgroup label=" ' . $store->getFrontendName() . '"></optgroup>';
|
55 |
+
$current_store_frontend_name = $store->getFrontendName();
|
56 |
+
}
|
57 |
$store_locale_code = $languageHelper->GetStoreLocale($store->getCode());
|
58 |
$selected_source = (!$source && $store->getId() == $website_default_store_id || $source == $store->getId());
|
59 |
$selected_target = ($target && $store->getId() == $target);
|
60 |
+
$website_dropdown_options .= '<option value="' . $store->getId() . '" ' . ($selected_source ? 'SOURCE-SELECTED' : '') . ($selected_target ? 'TARGET-SELECTED' : '') . '> ' . htmlspecialchars($store->getName()) . ' (' . $languageHelper->getLanguageNameByCode($store_locale_code, true) . ', ' . $store_locale_code . ')</option>';
|
61 |
}
|
62 |
}
|
63 |
?>
|
97 |
</tbody>
|
98 |
</table>
|
99 |
<p>
|
100 |
+
<i class="link-store-scope"></i> This tool allows you to translate all products in selected categories. In last step you may change which product fields to translate. Category information is not included, you need to order translation for those from "Manage Categories" view. Please note that this tool does not utilize advanced translation memory by default. If you would like to get a quote with translation memory enabled, contact <a href="mailto:support@transfluent.com">support@transfluent.com</a>.
|
101 |
</p>
|
102 |
</div>
|
103 |
</div>
|
app/design/adminhtml/default/default/template/transfluent/order/cms_step1.phtml
CHANGED
@@ -47,12 +47,17 @@ $collision_strategy = $this->getRequest()->getParam('collision');
|
|
47 |
$website_default_store_id = $website_default_store->getId();
|
48 |
unset($website_default_store);
|
49 |
$stores = $website->getStores();
|
|
|
50 |
foreach ($stores AS $store) {
|
51 |
/** @var Mage_Core_Model_Store $store */
|
|
|
|
|
|
|
|
|
52 |
$store_locale_code = $languageHelper->GetStoreLocale($store->getCode());
|
53 |
$selected_source = (!$source && $store->getId() == $website_default_store_id || $source == $store->getId());
|
54 |
$selected_target = ($target && $store->getId() == $target);
|
55 |
-
$website_dropdown_options .= '<option value="' . $store->getId() . '" ' . ($selected_source ? 'SOURCE-SELECTED' : '') . ($selected_target ? 'TARGET-SELECTED' : '') . '> ' . htmlspecialchars($store->getName()) . ' (' . $languageHelper->getLanguageNameByCode($store_locale_code, true) . ', ' . $store_locale_code . ')</option>';
|
56 |
}
|
57 |
}
|
58 |
?>
|
@@ -92,7 +97,7 @@ $collision_strategy = $this->getRequest()->getParam('collision');
|
|
92 |
</tbody>
|
93 |
</table>
|
94 |
<p>
|
95 |
-
<i class="link-store-scope"></i> CMS pages and blocks will be saved with the same identifier as the original content but it will be associated to the target store view only. Please note that in most cases for the first round of translations, you need to choose "Translate" -option for the existing content handling because usually the main language (e.g. English) version is shown on all store views until translations are in place.<br><br><strong>Important:</strong> This tool will always send the content to be (re-)translated unless there is an <strong>exact match</strong> of previous translation.
|
96 |
</p>
|
97 |
</div>
|
98 |
</div>
|
47 |
$website_default_store_id = $website_default_store->getId();
|
48 |
unset($website_default_store);
|
49 |
$stores = $website->getStores();
|
50 |
+
$current_store_frontend_name = null;
|
51 |
foreach ($stores AS $store) {
|
52 |
/** @var Mage_Core_Model_Store $store */
|
53 |
+
if (!$current_store_frontend_name || $current_store_frontend_name != $store->getFrontendName()) {
|
54 |
+
$website_dropdown_options .= '<optgroup label=" ' . $store->getFrontendName() . '"></optgroup>';
|
55 |
+
$current_store_frontend_name = $store->getFrontendName();
|
56 |
+
}
|
57 |
$store_locale_code = $languageHelper->GetStoreLocale($store->getCode());
|
58 |
$selected_source = (!$source && $store->getId() == $website_default_store_id || $source == $store->getId());
|
59 |
$selected_target = ($target && $store->getId() == $target);
|
60 |
+
$website_dropdown_options .= '<option value="' . $store->getId() . '" ' . ($selected_source ? 'SOURCE-SELECTED' : '') . ($selected_target ? 'TARGET-SELECTED' : '') . '> ' . htmlspecialchars($store->getName()) . ' (' . $languageHelper->getLanguageNameByCode($store_locale_code, true) . ', ' . $store_locale_code . ')</option>';
|
61 |
}
|
62 |
}
|
63 |
?>
|
97 |
</tbody>
|
98 |
</table>
|
99 |
<p>
|
100 |
+
<i class="link-store-scope"></i> CMS pages and blocks will be saved with the same identifier as the original content but it will be associated to the target store view only. Please note that in most cases for the first round of translations, you need to choose "Translate" -option for the existing content handling because usually the main language (e.g. English) version is shown on all store views until translations are in place.<br><br><strong>Important:</strong> This tool will always send the content to be (re-)translated unless there is an <strong>exact match</strong> of previous translation as this tool does not utilize a translation memory by default. If you would like to get a quote with translation memory enabled, contact <a href="mailto:support@transfluent.com">support@transfluent.com</a>.
|
101 |
</p>
|
102 |
</div>
|
103 |
</div>
|
app/design/adminhtml/default/default/template/transfluent/product/attributes/edit.phtml
CHANGED
@@ -39,19 +39,44 @@ if (empty($possible_languages)) {
|
|
39 |
return;
|
40 |
}
|
41 |
$store_id = $this->getRequest()->getParam('store');
|
42 |
-
print '<div style="margin-bottom: 20px;" id="translate_attribute_form">';
|
43 |
print '<strong>Translate</strong><br>';
|
44 |
print '<label><input type="checkbox" name="translate_name" id="translate_name" value="1" checked="checked"> attribute name (e.g. Color -> Farbe)</label><br>';
|
45 |
print '<label><input type="checkbox" name="translate_values" id="translate_values" value="1" checked="checked"> attribute options (e.g. Black -> Schwarz etc.)</label><br>';
|
46 |
print '<strong>into</strong> ';
|
|
|
47 |
foreach ($stores AS $store) {
|
48 |
/** @var Mage_Core_Model_Store $store */
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
}
|
52 |
print '<br> <strong>from</strong> ' . $helper->getSourceLanguageSelectHtmlForStores($stores) . ' <strong>using</strong> ' . $helper->getQualityHtml($store_id) . ' <button id="tf_translate_quote" title="Quote" type="button" class="scalable btn-translate" onclick="QuoteTranslation(this); return false;"><span><span><span>Get quote</span></span></span></button><br>';
|
53 |
print '<div id="tf_translate_form" style="padding: 10px;"></div>';
|
54 |
print '</div>';
|
|
|
55 |
?>
|
56 |
<script type="text/javascript">
|
57 |
function OrderTranslation(order_btn) {
|
39 |
return;
|
40 |
}
|
41 |
$store_id = $this->getRequest()->getParam('store');
|
42 |
+
print '<div style="margin-bottom: 20px; display: none;" id="translate_attribute_form">';
|
43 |
print '<strong>Translate</strong><br>';
|
44 |
print '<label><input type="checkbox" name="translate_name" id="translate_name" value="1" checked="checked"> attribute name (e.g. Color -> Farbe)</label><br>';
|
45 |
print '<label><input type="checkbox" name="translate_values" id="translate_values" value="1" checked="checked"> attribute options (e.g. Black -> Schwarz etc.)</label><br>';
|
46 |
print '<strong>into</strong> ';
|
47 |
+
$stores_by_websites = array();
|
48 |
foreach ($stores AS $store) {
|
49 |
/** @var Mage_Core_Model_Store $store */
|
50 |
+
if (!isset($stores_by_websites[$store->getWebsiteId()])) {
|
51 |
+
$stores_by_websites[$store->getWebsiteId()] = array();
|
52 |
+
}
|
53 |
+
$stores_by_websites[$store->getWebsiteId()][] = $store;
|
54 |
+
}
|
55 |
+
$current_website = null;
|
56 |
+
$current_store_frontend_name = null;
|
57 |
+
foreach ($stores_by_websites AS $website_id => $website_stores) {
|
58 |
+
foreach ($website_stores AS $store) {
|
59 |
+
/** @var Mage_Core_Model_Store $store */
|
60 |
+
if (!$current_website || $current_website != $website_id) {
|
61 |
+
$current_website = $website_id;
|
62 |
+
print '<div style="margin-left: 1rem; padding-left: 1rem;">';
|
63 |
+
print '<strong style="margin-left: -1rem;">' . $store->getWebsite()->getName() . ':</strong>';
|
64 |
+
}
|
65 |
+
if (!$current_store_frontend_name || $current_store_frontend_name != $store->getFrontendName()) {
|
66 |
+
print '<br><strong style="margin-left: -0.5rem;"><em>' . $store->getFrontendName() . ':</em></strong><br>';
|
67 |
+
$current_store_frontend_name = $store->getFrontendName();
|
68 |
+
}
|
69 |
+
$store_language = $helper->GetStoreLocale($store->getCode());
|
70 |
+
print '<label><input type="checkbox" name="translate_to[]" value="' . $store->getId() . '"> ' . $store->getName() . ' (' . Mage::getStoreConfig('general/locale/code', $store->getId()) . '; ' . $helper->getLanguageNameByCode(Mage::getStoreConfig('general/locale/code', $store->getId()), true) . ')</label> ';
|
71 |
+
}
|
72 |
+
if (count($website_stores)) {
|
73 |
+
print '</div>';
|
74 |
+
}
|
75 |
}
|
76 |
print '<br> <strong>from</strong> ' . $helper->getSourceLanguageSelectHtmlForStores($stores) . ' <strong>using</strong> ' . $helper->getQualityHtml($store_id) . ' <button id="tf_translate_quote" title="Quote" type="button" class="scalable btn-translate" onclick="QuoteTranslation(this); return false;"><span><span><span>Get quote</span></span></span></button><br>';
|
77 |
print '<div id="tf_translate_form" style="padding: 10px;"></div>';
|
78 |
print '</div>';
|
79 |
+
print '<button id="translate_attribute_form_toggler" title="Show translation form" type="button" class="scalable btn-translate" onclick="$(this).hide(); $(\'translate_attribute_form\').show(); return false;" style="margin-bottom: 2rem;"><span><span><span>Show translation form</span></span></span></button>';
|
80 |
?>
|
81 |
<script type="text/javascript">
|
82 |
function OrderTranslation(order_btn) {
|
app/design/adminhtml/default/default/template/transfluent/product/category/edit.phtml
CHANGED
@@ -25,23 +25,59 @@ if (empty($possible_languages)) {
|
|
25 |
}
|
26 |
$request = Mage::app()->getRequest();
|
27 |
$store_id = $this->getRequest()->getParam('store');
|
28 |
-
print '<div style="margin-bottom: 20px;" id="translate_attribute_form">';
|
29 |
print '<strong>Translate</strong><br>';
|
30 |
print '<label><input type="checkbox" name="translate_name" id="translate_name" value="1" checked="checked"> category name</label><br>';
|
31 |
print '<label><input type="checkbox" name="translate_desc" id="translate_desc" value="1" checked="checked"> category description</label><br>';
|
32 |
print '<label><input type="checkbox" name="translate_meta" id="translate_meta" value="1" checked="checked"> category meta title, keywords and description</label><br>';
|
33 |
print '<label><input type="checkbox" name="translate_subcat" id="translate_subcat" value="1" checked="checked"> translate same properties for all subcategories</label><br>';
|
34 |
print '<strong>into</strong> ';
|
|
|
35 |
foreach ($stores AS $store) {
|
36 |
/** @var Mage_Core_Model_Store $store */
|
37 |
-
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
}
|
40 |
print '<br> <strong>from</strong> ' . $helper->getSourceLanguageSelectHtmlForStores($stores) . ' <strong>using</strong> ' . $helper->getQualityHtml($store_id) . ' <button id="tf_translate_quote" title="Quote" type="button" class="scalable btn-translate" onclick="QuoteTranslation(this); return false;"><span><span><span>Get quote</span></span></span></button><br>';
|
41 |
print '<div id="tf_translate_form" style="padding: 10px;"></div>';
|
42 |
print '</div>';
|
|
|
43 |
?>
|
44 |
<script type="text/javascript">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
function OrderTranslation(order_btn) {
|
46 |
if (!categoryForm) {
|
47 |
categoryForm = new varienForm('category_edit_form');
|
25 |
}
|
26 |
$request = Mage::app()->getRequest();
|
27 |
$store_id = $this->getRequest()->getParam('store');
|
28 |
+
print '<div style="margin-bottom: 20px; display: none;" id="translate_attribute_form">';
|
29 |
print '<strong>Translate</strong><br>';
|
30 |
print '<label><input type="checkbox" name="translate_name" id="translate_name" value="1" checked="checked"> category name</label><br>';
|
31 |
print '<label><input type="checkbox" name="translate_desc" id="translate_desc" value="1" checked="checked"> category description</label><br>';
|
32 |
print '<label><input type="checkbox" name="translate_meta" id="translate_meta" value="1" checked="checked"> category meta title, keywords and description</label><br>';
|
33 |
print '<label><input type="checkbox" name="translate_subcat" id="translate_subcat" value="1" checked="checked"> translate same properties for all subcategories</label><br>';
|
34 |
print '<strong>into</strong> ';
|
35 |
+
$stores_by_websites = array();
|
36 |
foreach ($stores AS $store) {
|
37 |
/** @var Mage_Core_Model_Store $store */
|
38 |
+
if (!isset($stores_by_websites[$store->getWebsiteId()])) {
|
39 |
+
$stores_by_websites[$store->getWebsiteId()] = array();
|
40 |
+
}
|
41 |
+
$stores_by_websites[$store->getWebsiteId()][] = $store;
|
42 |
+
}
|
43 |
+
$current_website = null;
|
44 |
+
$current_store_frontend_name = null;
|
45 |
+
foreach ($stores_by_websites AS $website_id => $website_stores) {
|
46 |
+
foreach ($website_stores AS $store) {
|
47 |
+
/** @var Mage_Core_Model_Store $store */
|
48 |
+
if (!$current_website || $current_website != $website_id) {
|
49 |
+
$current_website = $website_id;
|
50 |
+
print '<div style="margin-left: 1rem; padding-left: 1rem;">';
|
51 |
+
print '<strong style="margin-left: -1rem;">' . $store->getWebsite()->getName() . ':</strong>';
|
52 |
+
}
|
53 |
+
if (!$current_store_frontend_name || $current_store_frontend_name != $store->getFrontendName()) {
|
54 |
+
print '<br><strong style="margin-left: -0.5rem;"><em>' . $store->getFrontendName() . ':</em></strong><br>';
|
55 |
+
$current_store_frontend_name = $store->getFrontendName();
|
56 |
+
}
|
57 |
+
$store_language = $helper->GetStoreLocale($store->getCode());
|
58 |
+
print '<label><input type="checkbox" name="translate_to[]" value="' . $store->getId() . '"> ' . $store->getName() . ' (' . Mage::getStoreConfig('general/locale/code', $store->getId()) . '; ' . $helper->getLanguageNameByCode(Mage::getStoreConfig('general/locale/code', $store->getId()), true) . ')</label> ';
|
59 |
+
}
|
60 |
+
if (count($website_stores)) {
|
61 |
+
print '</div>';
|
62 |
+
}
|
63 |
}
|
64 |
print '<br> <strong>from</strong> ' . $helper->getSourceLanguageSelectHtmlForStores($stores) . ' <strong>using</strong> ' . $helper->getQualityHtml($store_id) . ' <button id="tf_translate_quote" title="Quote" type="button" class="scalable btn-translate" onclick="QuoteTranslation(this); return false;"><span><span><span>Get quote</span></span></span></button><br>';
|
65 |
print '<div id="tf_translate_form" style="padding: 10px;"></div>';
|
66 |
print '</div>';
|
67 |
+
print '<button id="translate_attribute_form_toggler" title="Show translation form" type="button" class="scalable btn-translate" onclick="ShowCategoryTranslationForm(this); return false;" style="margin-bottom: 2rem;"><span><span><span>Show translation form</span></span></span></button>';
|
68 |
?>
|
69 |
<script type="text/javascript">
|
70 |
+
function ShowCategoryTranslationForm(obj) {
|
71 |
+
if (!categoryForm) {
|
72 |
+
categoryForm = new varienForm('category_edit_form');
|
73 |
+
}
|
74 |
+
if (!categoryForm.getCategoryId()) {
|
75 |
+
alert('Please choose an existing category or save the new category first!');
|
76 |
+
return;
|
77 |
+
}
|
78 |
+
$(obj).hide();
|
79 |
+
$('translate_attribute_form').toggle();
|
80 |
+
}
|
81 |
function OrderTranslation(order_btn) {
|
82 |
if (!categoryForm) {
|
83 |
categoryForm = new varienForm('category_edit_form');
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Transfluent</name>
|
4 |
-
<version>1.
|
5 |
<stability>stable</stability>
|
6 |
<license>MIT</license>
|
7 |
<channel>community</channel>
|
@@ -18,11 +18,11 @@
|
|
18 |
<description><p>The Transfluent plugin automates the process of translating product and category information using human translators. Magento admins need only to select what to translate and click order.</p>
|
19 |

|
20 |
<p>Translating content is handled in our backend using a vast network of professional translators.</p></description>
|
21 |
-
<notes>
|
22 |
<authors><author><name>Transfluent Ltd</name><user>Transfluent</user><email>coders@transfluent.com</email></author></authors>
|
23 |
-
<date>2016-10-
|
24 |
-
<time>
|
25 |
-
<contents><target name="magecommunity"><dir name="Transfluent"><dir name="Translate"><dir name="Block"><file name="Account.php" hash="64995360d00bb063736be0f12065452c"/><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><file name="Grid.php" hash="d2827c5587a2bb7c8664ff92c3dcf5d7"/><dir name="Renderer"><file name="Language.php" hash="cfc3a15752ecc6f7aab870ea6834c1df"/><file name="LanguagePair.php" hash="8d1c1959b44b487570d135eb5758a63b"/><file name="Level.php" hash="4a8f278da146ce9c8108758924bea667"/><file name="SourceText.php" hash="23c33835a99e64d575b101491774ed89"/><file name="Store.php" hash="4639d9f82bb498e57842a83110573e0c"/></dir></dir></dir><dir name="Tag"><dir name="Tag"><file name="Grid.php" hash="24647d2a73089769f664f7ae8f686597"/></dir></dir><dir name="Transfluentorder"><dir name="Edit"><file name="Form.php" hash="17fc3866562d4820c251ed17cc154b4d"/><dir name="Tab"><file name="Form.php" hash="3d45b7754d0044de84f6d40cb4cca9bf"/></dir><file name="Tabs.php" hash="5654a57d38cb31fb7159ffea72380adb"/></dir><file name="Edit.php" hash="e4a7206b94ec73e6573e62d22efc61ba"/></dir><file name="Transfluentorder.php" hash="d7b1b9286ce4bc825aba90869f556f57"/><dir name="Transfluenttranslate"><dir name="Edit"><file name="Form.php" hash="9e9d2152d4dd8fe936558a88afd1c554"/><dir name="Tab"><file name="Form.php" hash="d6bb7a75b800f0dfb9a85d6b8547d3d2"/></dir><file name="Tabs.php" hash="1e4e31e2e4be31918e4db4d677092759"/></dir><file name="Edit.php" hash="596dc94ba740e312ad1ea8a3a86bdc43"/><file name="Grid.php" hash="275f7dd4f8abb376a51bab8ee815f8f9"/></dir><file name="Transfluenttranslate.php" hash="c9a69e2dc7bb9ded6a61db0988b4842f"/></dir><file name="Estimate.php" hash="bc70c44df7c0522dc56d2039ce73dc64"/><file name="Help.php" hash="1c6779b04425381242c053baf54cac1f"/><file name="Loginform.php" hash="0662a26391b83f075e0b3ddf6a50e854"/><file name="Regform.php" hash="1a21630f4971b98b456464566f037018"/><file name="Translblock.php" hash="2171980ac113e56bbff73745f3c03e95"/></dir><dir name="Exception"><file name="Base.php" hash="e0ab547033d95d94820a5cbd58dea6f5"/><file name="EBackendCustomerHasNoBillingAgreement.php" hash="87f798c9e376b2392f33005181028e6b"/><file name="EFailedToUpdateOrder.php" hash="4261e774331f5e68864409c687e87e84"/><file name="EInvalidInput.php" hash="9e68fc972d84da619bc0f59a0309c673"/><file name="EInvalidJob.php" hash="be82fd6fe0c1dbc88be57fa4fd923196"/><file name="EInvalidTagFormat.php" hash="c8ac44aaec31e4ab77655ab85434724b"/><file name="ELanguagePairNotSupported.php" hash="696af3edef69e5ef009bbbd766db97ae"/><file name="ETagNotFound.php" hash="6bc8d1f2a8a5cbdfa9e83be92532e159"/><file name="ETransfluentAuthenticationExpired.php" hash="31d78696b92490440689d517ce3961ad"/><file name="ETransfluentAuthenticationExpiredBase.php" hash="5f31f311c1242c956dbe03ed56b89e8e"/><file name="ETransfluentInvalidInputTags.php" hash="d7e056e164a93a6fd9f9cffbc31664f8"/><file name="ETransfluentNothingToTranslate.php" hash="6b9aef0ccc8848dbbe33e4d55742a789"/><file name="ETransfluentOrderFail.php" hash="019f6eea7ea672217a6297ad1028ed02"/><file name="ETransfluentProductHasNoFieldsToTranslate.php" hash="324c6a7f92a4b2367ad9253aae319aa2"/><file name="ETransfluentProductNotFound.php" hash="d1ae6d72c99ba0061c3972e56f7508c1"/><file name="ETransfluentSomeSelectedProductsNotFound.php" hash="aaa71cede2f1136e8f6700f35bb3c541"/><file name="ETransfluentTagsNothingToTranslate.php" hash="aaec4494fcfa5f5801cc41d2488063b2"/><file name="ETransfluentUnknownBackendResponse.php" hash="8b88d91c6069383091b46416236fb516"/><file name="ETransfluentUnknownError.php" hash="f27e0198db51ae862cc69d969238acff"/><file name="ETransfluentUnknownErrorNoEstimate.php" hash="714d3ad48595f0a7f271ff4d6e41d5b7"/><file name="ETransfluentUnknownErrorTags.php" hash="6b56cfb2b97bed42edaff02e409ded3e"/><file name="EUnauthorized.php" hash="eb1ca081eebdc497cde30cd85337bc6e"/></dir><dir name="Helper"><file name="Category.php" hash="29dc91d14b3b60702f389dcd7ab45bc1"/><file name="Constant.php" hash="76af7760107c984a86a8522d08f33529"/><file name="Data.php" hash="a9604a97b35ccd8e28db12ad4e6877f2"/><file name="Languages.php" hash="
|
26 |
<compatible/>
|
27 |
<dependencies><required><php><min>5.3.0</min><max>7.1.0</max></php><extension><name>Core</name><min></min><max></max></extension><extension><name>curl</name><min></min><max></max></extension><extension><name>json</name><min></min><max></max></extension><extension><name>mbstring</name><min></min><max></max></extension></required></dependencies>
|
28 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Transfluent</name>
|
4 |
+
<version>1.5.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>MIT</license>
|
7 |
<channel>community</channel>
|
18 |
<description><p>The Transfluent plugin automates the process of translating product and category information using human translators. Magento admins need only to select what to translate and click order.</p>
|
19 |

|
20 |
<p>Translating content is handled in our backend using a vast network of professional translators.</p></description>
|
21 |
+
<notes>Improve source and target store selection in all translation forms</notes>
|
22 |
<authors><author><name>Transfluent Ltd</name><user>Transfluent</user><email>coders@transfluent.com</email></author></authors>
|
23 |
+
<date>2016-10-20</date>
|
24 |
+
<time>11:48:13</time>
|
25 |
+
<contents><target name="magecommunity"><dir name="Transfluent"><dir name="Translate"><dir name="Block"><file name="Account.php" hash="64995360d00bb063736be0f12065452c"/><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><file name="Grid.php" hash="d2827c5587a2bb7c8664ff92c3dcf5d7"/><dir name="Renderer"><file name="Language.php" hash="cfc3a15752ecc6f7aab870ea6834c1df"/><file name="LanguagePair.php" hash="8d1c1959b44b487570d135eb5758a63b"/><file name="Level.php" hash="4a8f278da146ce9c8108758924bea667"/><file name="SourceText.php" hash="23c33835a99e64d575b101491774ed89"/><file name="Store.php" hash="4639d9f82bb498e57842a83110573e0c"/></dir></dir></dir><dir name="Tag"><dir name="Tag"><file name="Grid.php" hash="24647d2a73089769f664f7ae8f686597"/></dir></dir><dir name="Transfluentorder"><dir name="Edit"><file name="Form.php" hash="17fc3866562d4820c251ed17cc154b4d"/><dir name="Tab"><file name="Form.php" hash="3d45b7754d0044de84f6d40cb4cca9bf"/></dir><file name="Tabs.php" hash="5654a57d38cb31fb7159ffea72380adb"/></dir><file name="Edit.php" hash="e4a7206b94ec73e6573e62d22efc61ba"/></dir><file name="Transfluentorder.php" hash="d7b1b9286ce4bc825aba90869f556f57"/><dir name="Transfluenttranslate"><dir name="Edit"><file name="Form.php" hash="9e9d2152d4dd8fe936558a88afd1c554"/><dir name="Tab"><file name="Form.php" hash="d6bb7a75b800f0dfb9a85d6b8547d3d2"/></dir><file name="Tabs.php" hash="1e4e31e2e4be31918e4db4d677092759"/></dir><file name="Edit.php" hash="596dc94ba740e312ad1ea8a3a86bdc43"/><file name="Grid.php" hash="275f7dd4f8abb376a51bab8ee815f8f9"/></dir><file name="Transfluenttranslate.php" hash="c9a69e2dc7bb9ded6a61db0988b4842f"/></dir><file name="Estimate.php" hash="bc70c44df7c0522dc56d2039ce73dc64"/><file name="Help.php" hash="1c6779b04425381242c053baf54cac1f"/><file name="Loginform.php" hash="0662a26391b83f075e0b3ddf6a50e854"/><file name="Regform.php" hash="1a21630f4971b98b456464566f037018"/><file name="Translblock.php" hash="2171980ac113e56bbff73745f3c03e95"/></dir><dir name="Exception"><file name="Base.php" hash="e0ab547033d95d94820a5cbd58dea6f5"/><file name="EBackendCustomerHasNoBillingAgreement.php" hash="87f798c9e376b2392f33005181028e6b"/><file name="EFailedToUpdateOrder.php" hash="4261e774331f5e68864409c687e87e84"/><file name="EInvalidInput.php" hash="9e68fc972d84da619bc0f59a0309c673"/><file name="EInvalidJob.php" hash="be82fd6fe0c1dbc88be57fa4fd923196"/><file name="EInvalidTagFormat.php" hash="c8ac44aaec31e4ab77655ab85434724b"/><file name="ELanguagePairNotSupported.php" hash="696af3edef69e5ef009bbbd766db97ae"/><file name="ETagNotFound.php" hash="6bc8d1f2a8a5cbdfa9e83be92532e159"/><file name="ETransfluentAuthenticationExpired.php" hash="31d78696b92490440689d517ce3961ad"/><file name="ETransfluentAuthenticationExpiredBase.php" hash="5f31f311c1242c956dbe03ed56b89e8e"/><file name="ETransfluentInvalidInputTags.php" hash="d7e056e164a93a6fd9f9cffbc31664f8"/><file name="ETransfluentNothingToTranslate.php" hash="6b9aef0ccc8848dbbe33e4d55742a789"/><file name="ETransfluentOrderFail.php" hash="019f6eea7ea672217a6297ad1028ed02"/><file name="ETransfluentProductHasNoFieldsToTranslate.php" hash="324c6a7f92a4b2367ad9253aae319aa2"/><file name="ETransfluentProductNotFound.php" hash="d1ae6d72c99ba0061c3972e56f7508c1"/><file name="ETransfluentSomeSelectedProductsNotFound.php" hash="aaa71cede2f1136e8f6700f35bb3c541"/><file name="ETransfluentTagsNothingToTranslate.php" hash="aaec4494fcfa5f5801cc41d2488063b2"/><file name="ETransfluentUnknownBackendResponse.php" hash="8b88d91c6069383091b46416236fb516"/><file name="ETransfluentUnknownError.php" hash="f27e0198db51ae862cc69d969238acff"/><file name="ETransfluentUnknownErrorNoEstimate.php" hash="714d3ad48595f0a7f271ff4d6e41d5b7"/><file name="ETransfluentUnknownErrorTags.php" hash="6b56cfb2b97bed42edaff02e409ded3e"/><file name="EUnauthorized.php" hash="eb1ca081eebdc497cde30cd85337bc6e"/></dir><dir name="Helper"><file name="Category.php" hash="29dc91d14b3b60702f389dcd7ab45bc1"/><file name="Constant.php" hash="76af7760107c984a86a8522d08f33529"/><file name="Data.php" hash="a9604a97b35ccd8e28db12ad4e6877f2"/><file name="Languages.php" hash="65bbfa5a583cfdbee8b74babcfad349c"/><file name="Product.php" hash="ee04f0c62cdeef260c677cd1fc363041"/><file name="Tag.php" hash="aba096e9a6207e7f2055db4733c1b839"/><file name="Text.php" hash="4e5c084ac4e849d6fe2614dfef77c932"/><file name="Util.php" hash="2db7fdba0b945821e12746c45fb6bf9b"/></dir><dir name="Model"><file name="AttributeName.php" hash="97619966fb9c04b031d2cae5147fdb21"/><file name="AttributeOption.php" hash="39007a2e2821e5853b6cfefe0e1a1c17"/><dir name="Base"><file name="Backendclient.php" hash="caf6a742113422d353ba7068c13cb296"/></dir><file name="CategoryDetail.php" hash="3a0ce226c17ef8280ca9001c77e0d275"/><dir name="Config"><dir name="Source"><file name="Fromlang.php" hash="600bdc90cb5a08d36003ea651ee398c2"/><file name="Language.php" hash="dcbd7cc51695c71fa0da6da25e0d52d8"/><file name="Quality.php" hash="73987e05216bb54d3b483d751888e602"/></dir></dir><file name="Debugutil.php" hash="3542cff301f9fc0d69072068c384acb3"/><dir name="Mysql4"><dir name="Transfluenttranslate"><file name="Collection.php" hash="80ebe484ed7a4dee8980b4d6c03d1425"/></dir><file name="Transfluenttranslate.php" hash="bef2f82a3c2d2fd25031c654026bdc34"/></dir><file name="Observer.php" hash="96ca21eaefbf03ea6a84cfa1179d4c93"/><file name="ProductDetail.php" hash="5b9a5ce790576fe19e33fbbc63554a24"/><file name="TagName.php" hash="8d59f540cc0f1290b419f95f7dabe7c6"/><file name="Transfluentorder.php" hash="12f0833461b032cdf21da5de28a3406a"/><file name="Transfluenttranslate.php" hash="d973756d579d415cd11033acb7669555"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="TransfluentAccountController.php" hash="8873df11e15efb11b90eeaf41f497b14"/><file name="TransfluentorderController.php" hash="6ec029cc1ab74adf1b7544f868cbcd45"/><file name="TransfluenttranslateController.php" hash="5de5c5717bfc3243cc62d4aaecd87c63"/></dir><file name="TranslationController.php" hash="fb177c1cfe8c7dccbcd6393dd4609f15"/></dir><dir name="etc"><file name="config.xml" hash="411a3a0dc37a0f9838d9d9e5991b25d6"/><file name="system.xml" hash="50cd649525ba4fa3d1e6b038a87c890c"/></dir><dir name="sql"><dir name="transfluenttranslate_setup"><file name="mysql4-install-1.1.0.php" hash="1691b91c29d66284b51583bf47e5c9ec"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="transfluent.xml" hash="92accb97ee4a7c710ef46e01d1307f83"/></dir><dir name="template"><dir name="transfluent"><dir name="account"><file name="action.phtml" hash="15f0fb05be28c13df4e6656cf9569b06"/><file name="create.phtml" hash="5b51d4a6f3f444494fe3b053c6f96463"/><file name="logged.phtml" hash="6f024c314550b3f378e5d8399984b082"/><file name="login.phtml" hash="06acb7c890315c53937a1dd5f90275a6"/></dir><file name="estimate.phtml" hash="f2b85bb6943c7ff335d45e2401e0b541"/><file name="estimate_section.phtml" hash="02db1adf41e46f86e4cca94e554db08f"/><dir name="order"><file name="category_step1.phtml" hash="44bcf9b7605e523f4d42dc3f15b1b994"/><file name="category_step2.phtml" hash="48ded6d187b52ba82b8902a0e2631206"/><file name="category_step3.phtml" hash="f32f4d22467c2f2f5a6b03c3bdb273a6"/><file name="category_step5.phtml" hash="c1121856016fa4dbf0bc0dbcd157ff20"/><file name="cms_step1.phtml" hash="a5bfb00d35d4f2d67bb355f106b8ab52"/><file name="cms_step2.phtml" hash="9ef31cc3bf8444c4f37fa927d8d1f694"/><file name="cms_step3.phtml" hash="58c18eb79aaaab70577c7163684c3898"/><file name="cms_step5.phtml" hash="2831358f2ff6153c8550816163c98ee9"/><file name="listing.phtml" hash="51403a39ad9e396656b9768e597af93d"/></dir><dir name="product"><dir name="attributes"><file name="edit.phtml" hash="e8bf33b266171a8f5a7e41a4c80efe6b"/></dir><dir name="category"><file name="edit.phtml" hash="dea02d77c12d1b9ec95d07f22677a3cc"/></dir><file name="edit.phtml" hash="4aa71b35c0ae578a67c3b6c8d0abf906"/><file name="index.phtml" hash="6701bfad68cceffaa4cd5b8775642849"/></dir><dir name="tag"><dir name="tag"><file name="index.phtml" hash="30dd38c745aec12f13a084be7753566d"/></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Transfluent_Translate.xml" hash="21fbc30a1cba6c2b86b262439eee8ed3"/></dir></target><target name="mageweb"><dir name="js"><dir name="transfluent"><file name="actions.js" hash="471135bf9f5941d0e22d11aa726bfc3b"/><file name="lib.js" hash="0f1029e5a4a1c1e88ca2bb8304bc34e8"/></dir></dir></target></contents>
|
26 |
<compatible/>
|
27 |
<dependencies><required><php><min>5.3.0</min><max>7.1.0</max></php><extension><name>Core</name><min></min><max></max></extension><extension><name>curl</name><min></min><max></max></extension><extension><name>json</name><min></min><max></max></extension><extension><name>mbstring</name><min></min><max></max></extension></required></dependencies>
|
28 |
</package>
|