Skip to content

Commit 5f56820

Browse files
authored
Merge pull request #220 from metacreo/17
Make captcha multilingual
2 parents 44368fd + 70588ad commit 5f56820

4 files changed

+23
-11
lines changed

eicaptcha.php

+20-8
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class EiCaptcha extends Module
3535

3636
/** @var array */
3737
protected $themes = [];
38+
3839
/**
3940
* @var Debugger
4041
*/
@@ -45,6 +46,11 @@ class EiCaptcha extends Module
4546
*/
4647
protected $installer;
4748

49+
/**
50+
* @var string (2 or 3 digits Language ISO code) Captcha language (default: en)
51+
*/
52+
protected $captchaLang = 'en';
53+
4854
public function __construct()
4955
{
5056
$this->author = 'hhennes';
@@ -70,6 +76,12 @@ public function __construct()
7076
$this->ps_versions_compliancy = ['min' => '1.7.0.0', 'max' => _PS_VERSION_];
7177

7278
$this->debugger = new Debugger($this);
79+
80+
$this->captchaLang = $this->context->language->iso_code;
81+
$forceLang = Configuration::get('CAPTCHA_FORCE_LANG');
82+
if (!empty($forceLang) && Validate::isLanguageIsoCode($forceLang)) {
83+
$this->captchaLang = $forceLang;
84+
}
7385
}
7486

7587
/**
@@ -213,7 +225,7 @@ protected function renderHeaderV2()
213225
</script>';
214226

215227
if (($this->context->controller instanceof ContactController && Configuration::get('CAPTCHA_ENABLE_CONTACT') == 1)) {
216-
$js .= '<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=' . Configuration::get('CAPTCHA_FORCE_LANG') . '" async defer></script>';
228+
$js .= '<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=' . $this->captchaLang . '" async defer></script>';
217229
}
218230

219231
return $js;
@@ -260,8 +272,8 @@ public function hookDisplayCustomerAccountForm($params)
260272
$this->context->smarty->assign([
261273
'captchaVersion' => Configuration::get('CAPTCHA_VERSION'),
262274
'publicKey' => Configuration::get('CAPTCHA_PUBLIC_KEY'),
263-
'captchaforcelang' => Configuration::get('CAPTCHA_FORCE_LANG'),
264-
'captchatheme' => $this->themes[Configuration::get('CAPTCHA_THEME')],
275+
'captchalang' => $this->captchaLang,
276+
'captchatheme' => $this->themes[Configuration::get('CAPTCHA_THEME')]
265277
]);
266278

267279
return $this->display(__FILE__, 'views/templates/hook/hookDisplayCustomerAccountForm.tpl');
@@ -357,8 +369,8 @@ public function hookDisplayNewsletterRegistration($params)
357369
$this->context->smarty->assign([
358370
'captchaVersion' => Configuration::get('CAPTCHA_VERSION'),
359371
'publicKey' => Configuration::get('CAPTCHA_PUBLIC_KEY'),
360-
'captchaforcelang' => Configuration::get('CAPTCHA_FORCE_LANG'),
361-
'captchatheme' => $this->themes[Configuration::get('CAPTCHA_THEME')],
372+
'captchalang' => $this->captchaLang,
373+
'captchatheme' => $this->themes[Configuration::get('CAPTCHA_THEME')]
362374
]);
363375

364376
return $this->display(__FILE__, 'views/templates/hook/hookDisplayNewsletterRegistration.tpl');
@@ -437,7 +449,7 @@ public function hookActionGetEicaptchaParams($params)
437449
'captchaVersion' => Configuration::get('CAPTCHA_VERSION'),
438450
'publicKey' => Configuration::get('CAPTCHA_PUBLIC_KEY'),
439451
'captchaforcelang' => Configuration::get('CAPTCHA_FORCE_LANG'),
440-
'captchatheme' => $this->themes[Configuration::get('CAPTCHA_THEME')],
452+
'captchatheme' => $this->themes[Configuration::get('CAPTCHA_THEME')]
441453
];
442454
}
443455

@@ -454,8 +466,8 @@ public function hookDisplayEicaptchaVerification($params)
454466
'displayCaptcha' => $this->shouldDisplayToCustomer(),
455467
'captchaVersion' => Configuration::get('CAPTCHA_VERSION'),
456468
'publicKey' => Configuration::get('CAPTCHA_PUBLIC_KEY'),
457-
'captchaforcelang' => Configuration::get('CAPTCHA_FORCE_LANG'),
458-
'captchatheme' => $this->themes[Configuration::get('CAPTCHA_THEME')],
469+
'captchalang' => $this->captchaLang,
470+
'captchatheme' => $this->themes[Configuration::get('CAPTCHA_THEME')]
459471
]);
460472

461473
return $this->display(__FILE__, 'views/templates/hook/hookDisplayEicaptchaVerification.tpl');

views/templates/hook/hookDisplayCustomerAccountForm.tpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
*}
3434
<div class="g-recaptcha" data-sitekey="{$publicKey|escape:'html'}" id="captcha-box"
3535
data-theme="{$captchatheme}"></div>
36-
<script src="https://www.google.com/recaptcha/api.js{if isset($captchaforcelang)}?hl={$captchaforcelang}{/if}"
36+
<script src="https://www.google.com/recaptcha/api.js?hl={$captchalang}"
3737
async defer></script>
3838
</div>
3939
{else}

views/templates/hook/hookDisplayEicaptchaVerification.tpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
{if $captchaVersion == 2}
2929
<div class="g-recaptcha" data-sitekey="{$publicKey|escape:'html'}" id="captcha-box-custom"
3030
data-theme="{$captchatheme}"></div>
31-
<script src="https://www.google.com/recaptcha/api.js{if isset($captchaforcelang)}?hl={$captchaforcelang}{/if}"
31+
<script src="https://www.google.com/recaptcha/api.js?hl={$captchalang}"
3232
async defer></script>
3333
{else}
3434
<input type="hidden" id="captcha-box-custom" name="g-recaptcha-response"/>

views/templates/hook/hookDisplayNewsletterRegistration.tpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<div class="col-xs-12 pull-right">
2727
{if $captchaVersion == 2}
2828
<div class="g-recaptcha" data-sitekey="{$publicKey|escape:'html'}" id="captcha-box-newsletter" data-theme="{$captchatheme}"></div>
29-
<script src="https://www.google.com/recaptcha/api.js{if isset($captchaforcelang)}?hl={$captchaforcelang}{/if}" async defer></script>
29+
<script src="https://www.google.com/recaptcha/api.js?hl={$captchalang}" async defer></script>
3030
{else}
3131
<input type="hidden" id="captcha-box-newsletter" name="g-recaptcha-response"/>
3232
<script src="https://www.google.com/recaptcha/api.js?render={$publicKey|escape:'html'}"></script>

0 commit comments

Comments
 (0)