Merge pull request #5443 from turbo124/v5-develop

Custom Translations in emails
This commit is contained in:
David Bomba 2021-04-16 16:23:02 +10:00 committed by GitHub
commit ec471283ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 45 additions and 1 deletions

View File

@ -11,11 +11,14 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Utils\Ninja;
use App\Utils\TemplateEngine; use App\Utils\TemplateEngine;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
use App\Utils\Traits\MakesInvoiceHtml; use App\Utils\Traits\MakesInvoiceHtml;
use App\Utils\Traits\MakesTemplateData; use App\Utils\Traits\MakesTemplateData;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Lang;
class TemplateController extends BaseController class TemplateController extends BaseController
{ {
@ -89,7 +92,7 @@ class TemplateController extends BaseController
$subject = request()->has('subject') ? request()->input('subject') : ''; $subject = request()->has('subject') ? request()->input('subject') : '';
$body = request()->has('body') ? request()->input('body') : ''; $body = request()->has('body') ? request()->input('body') : '';
$template = request()->has('template') ? request()->input('template') : ''; $template = request()->has('template') ? request()->input('template') : '';
$data = (new TemplateEngine($body, $subject, $entity, $entity_id, $template))->build(); $data = (new TemplateEngine($body, $subject, $entity, $entity_id, $template))->build();
return response()->json($data, 200); return response()->json($data, 200);

View File

@ -12,7 +12,10 @@
namespace App\Mail\Engine; namespace App\Mail\Engine;
use App\Utils\HtmlEngine; use App\Utils\HtmlEngine;
use App\Utils\Ninja;
use App\Utils\Number; use App\Utils\Number;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Lang;
class CreditEmailEngine extends BaseEmailEngine class CreditEmailEngine extends BaseEmailEngine
{ {
@ -40,6 +43,9 @@ class CreditEmailEngine extends BaseEmailEngine
public function build() public function build()
{ {
App::forgetInstance('translator');
Lang::replace(Ninja::transformTranslations($this->client->getMergedSettings()));
if (is_array($this->template_data) && array_key_exists('body', $this->template_data) && strlen($this->template_data['body']) > 0) { if (is_array($this->template_data) && array_key_exists('body', $this->template_data) && strlen($this->template_data['body']) > 0) {
$body_template = $this->template_data['body']; $body_template = $this->template_data['body'];
} else { } else {

View File

@ -14,7 +14,10 @@ namespace App\Mail\Engine;
use App\DataMapper\EmailTemplateDefaults; use App\DataMapper\EmailTemplateDefaults;
use App\Models\Account; use App\Models\Account;
use App\Utils\HtmlEngine; use App\Utils\HtmlEngine;
use App\Utils\Ninja;
use App\Utils\Number; use App\Utils\Number;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Lang;
class InvoiceEmailEngine extends BaseEmailEngine class InvoiceEmailEngine extends BaseEmailEngine
{ {
@ -42,6 +45,10 @@ class InvoiceEmailEngine extends BaseEmailEngine
public function build() public function build()
{ {
App::forgetInstance('translator');
Lang::replace(Ninja::transformTranslations($this->client->getMergedSettings()));
if (is_array($this->template_data) && array_key_exists('body', $this->template_data) && strlen($this->template_data['body']) > 0) { if (is_array($this->template_data) && array_key_exists('body', $this->template_data) && strlen($this->template_data['body']) > 0) {
$body_template = $this->template_data['body']; $body_template = $this->template_data['body'];
} elseif (strlen($this->client->getSetting('email_template_'.$this->reminder_template)) > 0) { } elseif (strlen($this->client->getSetting('email_template_'.$this->reminder_template)) > 0) {

View File

@ -13,7 +13,10 @@ namespace App\Mail\Engine;
use App\Models\Account; use App\Models\Account;
use App\Utils\HtmlEngine; use App\Utils\HtmlEngine;
use App\Utils\Ninja;
use App\Utils\Number; use App\Utils\Number;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Lang;
class QuoteEmailEngine extends BaseEmailEngine class QuoteEmailEngine extends BaseEmailEngine
{ {
@ -41,6 +44,9 @@ class QuoteEmailEngine extends BaseEmailEngine
public function build() public function build()
{ {
App::forgetInstance('translator');
Lang::replace(Ninja::transformTranslations($this->client->getMergedSettings()));
if (is_array($this->template_data) && array_key_exists('body', $this->template_data) && strlen($this->template_data['body']) > 0) { if (is_array($this->template_data) && array_key_exists('body', $this->template_data) && strlen($this->template_data['body']) > 0) {
$body_template = $this->template_data['body']; $body_template = $this->template_data['body'];
} else { } else {

View File

@ -33,7 +33,21 @@ class NinjaTranslationServiceProvider extends TranslationServiceProvider
* *
*/ */
// $this->app->bind('translator', function($app) {
// $loader = $app['translation.loader'];
// $locale = $app['config']['app.locale'];
// $trans = new NinjaTranslator($loader, $locale);
// $trans->setFallback($app['config']['app.fallback_locale']);
// return $trans;
// });
$this->app->singleton('translator', function ($app) { $this->app->singleton('translator', function ($app) {
$loader = $app['translation.loader']; $loader = $app['translation.loader'];
$locale = $app['config']['app.locale']; $locale = $app['config']['app.locale'];
@ -42,6 +56,8 @@ class NinjaTranslationServiceProvider extends TranslationServiceProvider
$trans->setFallback($app['config']['app.fallback_locale']); $trans->setFallback($app['config']['app.fallback_locale']);
return $trans; return $trans;
}); });
} }
} }

View File

@ -16,10 +16,13 @@ use App\Models\Client;
use App\Models\ClientContact; use App\Models\ClientContact;
use App\Models\Invoice; use App\Models\Invoice;
use App\Models\InvoiceInvitation; use App\Models\InvoiceInvitation;
use App\Utils\Ninja;
use App\Utils\Traits\MakesHash; use App\Utils\Traits\MakesHash;
use App\Utils\Traits\MakesInvoiceHtml; use App\Utils\Traits\MakesInvoiceHtml;
use App\Utils\Traits\MakesTemplateData; use App\Utils\Traits\MakesTemplateData;
use DB; use DB;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Lang;
use League\CommonMark\CommonMarkConverter; use League\CommonMark\CommonMarkConverter;
class TemplateEngine class TemplateEngine
@ -96,6 +99,9 @@ class TemplateEngine
$this->settings = $this->settings_entity->settings; $this->settings = $this->settings_entity->settings;
} }
App::forgetInstance('translator');
Lang::replace(Ninja::transformTranslations($this->settings));
return $this; return $this;
} }