Add custom translations to email preview and sent emails

This commit is contained in:
David Bomba 2021-04-16 16:22:42 +10:00
parent 18cf8110b5
commit 7026dbd8f2
6 changed files with 45 additions and 16 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
{ {

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,20 +33,7 @@ class NinjaTranslationServiceProvider extends TranslationServiceProvider
* *
*/ */
$this->app->bind('translator', function($app) { // $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) {
// $loader = $app['translation.loader']; // $loader = $app['translation.loader'];
// $locale = $app['config']['app.locale']; // $locale = $app['config']['app.locale'];
@ -58,5 +45,19 @@ class NinjaTranslationServiceProvider extends TranslationServiceProvider
// return $trans; // return $trans;
// }); // });
$this->app->singleton('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;
});
} }
} }

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;
} }