From c55226ce3ed409e82e2ae3c2921091f438b668c3 Mon Sep 17 00:00:00 2001 From: Sanjeev Papnoi Date: Mon, 17 Feb 2020 09:45:38 +0530 Subject: [PATCH 1/6] translation update --- Resources/views/Knowledgebase/login.html.twig | 2 +- .../Staff/Articles/articleAddForm.html.twig | 2 +- .../Staff/Articles/articleForm.html.twig | 4 +- .../views/Staff/Folders/listFolders.html.twig | 4 +- Resources/views/Staff/branding.html.twig | 2 +- Resources/views/Templates/footer.html.twig | 6 +-- .../Dashboard/Homepage/Items/Articles.php | 2 +- .../Dashboard/Homepage/Items/Categories.php | 2 +- .../Dashboard/Homepage/Items/Folders.php | 2 +- .../Dashboard/Homepage/Items/SpamSettings.php | 2 +- .../Homepage/Sections/Knowledgebase.php | 4 +- .../Dashboard/Navigation/Knowledgebase.php | 51 ++++++++++++++++++- 12 files changed, 66 insertions(+), 17 deletions(-) diff --git a/Resources/views/Knowledgebase/login.html.twig b/Resources/views/Knowledgebase/login.html.twig index 4ba4da4..c566a22 100755 --- a/Resources/views/Knowledgebase/login.html.twig +++ b/Resources/views/Knowledgebase/login.html.twig @@ -13,7 +13,7 @@

{{ 'Sign In to %websitename%'|trans({ '%websitename%': '' ~ websiteDetails.name|e ~ '' })|raw }}

-

{{ 'If you\'ve ever contacted our support previously, your account would have already been created.'|trans }}

+

{{ 'If you have ever contacted our support previously, your account would have already been created.'|trans }}

diff --git a/Resources/views/Staff/Articles/articleAddForm.html.twig b/Resources/views/Staff/Articles/articleAddForm.html.twig index 4250482..15cc695 100644 --- a/Resources/views/Staff/Articles/articleAddForm.html.twig +++ b/Resources/views/Staff/Articles/articleAddForm.html.twig @@ -82,7 +82,7 @@
- {{"Title tags and meta descriptions are bits of HTML code in the header of a web page. They help search engines understand the content on a page. A page's title tag and meta description are usually shown whenever that page appears in search engine results"|trans}} + {{"Title tags and meta descriptions are bits of HTML code in the header of a web page. They help search engines understand the content on a page. A pages title tag and meta description are usually shown whenever that page appears in search engine results"|trans}}
diff --git a/Resources/views/Staff/Articles/articleForm.html.twig b/Resources/views/Staff/Articles/articleForm.html.twig index ba71722..545f541 100644 --- a/Resources/views/Staff/Articles/articleForm.html.twig +++ b/Resources/views/Staff/Articles/articleForm.html.twig @@ -197,11 +197,11 @@ - {{'view'|trans}} + {{'View'|trans}} - {{'preview'|trans}} + {{'Preview'|trans}} diff --git a/Resources/views/Staff/Folders/listFolders.html.twig b/Resources/views/Staff/Folders/listFolders.html.twig index cd5c850..46416cb 100644 --- a/Resources/views/Staff/Folders/listFolders.html.twig +++ b/Resources/views/Staff/Folders/listFolders.html.twig @@ -171,10 +171,10 @@ Folders <% if(!window.location.hash) { %>

{{"Create Knowledgebase Folder"|trans}}

-

{{"You didn't add any folder to your Knowledgebase yet, Create your first Folder and start adding Categories/Articles to make your customers help themselves."|trans}}

+

{{"You did not add any folder to your Knowledgebase yet, Create your first Folder and start adding Categories/Articles to make your customers help themselves."|trans}}

<% } else { %>

- {{ "You didn't have any folder for current filter(s)."|trans }} + {{ "You did not have any folder for current filter(s)."|trans }} {{ 'Clear Filters'|trans }}

<% } %> diff --git a/Resources/views/Staff/branding.html.twig b/Resources/views/Staff/branding.html.twig index 9ab41f7..accf363 100644 --- a/Resources/views/Staff/branding.html.twig +++ b/Resources/views/Staff/branding.html.twig @@ -503,7 +503,7 @@ {% endfor %} - {{ "Choose a default company's timezone"|trans }} + {{ "Choose a default company timezone"|trans }} diff --git a/Resources/views/Templates/footer.html.twig b/Resources/views/Templates/footer.html.twig index 84ef387..30f5e78 100644 --- a/Resources/views/Templates/footer.html.twig +++ b/Resources/views/Templates/footer.html.twig @@ -3,8 +3,8 @@ diff --git a/UIComponents/Dashboard/Homepage/Items/Articles.php b/UIComponents/Dashboard/Homepage/Items/Articles.php index 591e204..d251b41 100644 --- a/UIComponents/Dashboard/Homepage/Items/Articles.php +++ b/UIComponents/Dashboard/Homepage/Items/Articles.php @@ -20,7 +20,7 @@ public static function getIcon() : string public static function getTitle() : string { - return "Articles"; + return self::dynamicTranslation("Articles"); } public static function getRouteName() : string diff --git a/UIComponents/Dashboard/Homepage/Items/Categories.php b/UIComponents/Dashboard/Homepage/Items/Categories.php index 16f391e..3001713 100644 --- a/UIComponents/Dashboard/Homepage/Items/Categories.php +++ b/UIComponents/Dashboard/Homepage/Items/Categories.php @@ -20,7 +20,7 @@ public static function getIcon() : string public static function getTitle() : string { - return "Categories"; + return self::dynamicTranslation("Categories"); } public static function getRouteName() : string diff --git a/UIComponents/Dashboard/Homepage/Items/Folders.php b/UIComponents/Dashboard/Homepage/Items/Folders.php index 5d33690..dc7018e 100644 --- a/UIComponents/Dashboard/Homepage/Items/Folders.php +++ b/UIComponents/Dashboard/Homepage/Items/Folders.php @@ -20,7 +20,7 @@ public static function getIcon() : string public static function getTitle() : string { - return "Folders"; + return self::dynamicTranslation("Folders"); } public static function getRouteName() : string diff --git a/UIComponents/Dashboard/Homepage/Items/SpamSettings.php b/UIComponents/Dashboard/Homepage/Items/SpamSettings.php index 1d7ac49..9bbc682 100644 --- a/UIComponents/Dashboard/Homepage/Items/SpamSettings.php +++ b/UIComponents/Dashboard/Homepage/Items/SpamSettings.php @@ -20,7 +20,7 @@ public static function getIcon() : string public static function getTitle() : string { - return "Spam Settings"; + return self::dynamicTranslation("Spam Settings"); } public static function getRouteName() : string diff --git a/UIComponents/Dashboard/Homepage/Sections/Knowledgebase.php b/UIComponents/Dashboard/Homepage/Sections/Knowledgebase.php index 1a9aa77..4ad4dce 100644 --- a/UIComponents/Dashboard/Homepage/Sections/Knowledgebase.php +++ b/UIComponents/Dashboard/Homepage/Sections/Knowledgebase.php @@ -8,12 +8,12 @@ class Knowledgebase extends HomepageSection { public static function getTitle() : string { - return "Knowledgebase"; + return self::dynamicTranslation("Knowledgebase"); } public static function getDescription() : string { - return "Knowledgebase is a source of rigid and complex information which helps Customers to help themselves"; + return self::dynamicTranslation("Knowledgebase is a source of rigid and complex information which helps Customers to help themselves"); } public static function getRoles() : array diff --git a/UIComponents/Dashboard/Navigation/Knowledgebase.php b/UIComponents/Dashboard/Navigation/Knowledgebase.php index 2bf038e..1b95ec4 100644 --- a/UIComponents/Dashboard/Navigation/Knowledgebase.php +++ b/UIComponents/Dashboard/Navigation/Knowledgebase.php @@ -3,6 +3,9 @@ namespace Webkul\UVDesk\SupportCenterBundle\UIComponents\Dashboard\Navigation; use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\NavigationInterface; +use Symfony\Component\Translation\Translator; +use Symfony\Component\Translation\Loader\YamlFileLoader; +use Symfony\Component\HttpFoundation\Request; class Knowledgebase implements NavigationInterface { @@ -19,7 +22,7 @@ public static function getIcon() : string public static function getTitle() : string { - return "Knowledgebase"; + return self::dynamicTranslation("Knowledgebase"); } public static function getRouteName() : string @@ -36,4 +39,50 @@ public function getChildrenRoutes() : array { return []; } + + public static function dynamicTranslation($data) : string + { + $request = Request::createFromGlobals(); + $path = $request->getPathInfo(); + $locale = explode("/", $path); + $translator = new Translator($locale[1]); + + switch($locale[1]) + { + case 'en': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.en.yml", 'en'); + break; + case 'es': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.es.yml", 'es'); + break; + case 'fr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.fr.yml", 'fr'); + break; + case 'da': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.da.yml", 'da'); + break; + case 'de': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.de.yml", 'de'); + break; + case 'it': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.it.yml", 'it'); + break; + case 'ar': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.ar.yml", 'ar'); + break; + case 'tr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.tr.yml", 'tr'); + break; + } + + return $translator->trans($data); + } } From a85389df255c6f2001a88395244d8e09a8b9af7f Mon Sep 17 00:00:00 2001 From: Sanjeev Papnoi Date: Wed, 4 Mar 2020 11:55:48 +0530 Subject: [PATCH 2/6] translation update --- Controller/Article.php | 6 +++--- Controller/KnowledgebaseXHR.php | 4 ++-- Controller/Ticket.php | 12 +++--------- Resources/views/Themes/cookiePolicy.html.twig | 2 +- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/Controller/Article.php b/Controller/Article.php index 3606a87..83be8e6 100755 --- a/Controller/Article.php +++ b/Controller/Article.php @@ -349,7 +349,7 @@ public function articleXhr(Request $request) if (count($relatedArticles)) { $json['alertClass'] = 'success'; - $json['alertMessage'] ='Success ! Article Related is already added.'; + $json['alertMessage'] = $this->get('translator')->trans('Success ! Article Related is already added.'); } elseif ($data['ids'][0] == $data['entityId']) { $json['alertClass'] = 'danger'; @@ -410,7 +410,7 @@ public function articleXhr(Request $request) $entityManager->flush(); } $json['alertClass'] = 'success'; - $json['alertMessage'] ='Success ! Article star updated successfully.'; + $json['alertMessage'] = $this->get('translator')->trans('Success ! Article star updated successfully.'); break; case "update": $articleBase = $this->getDoctrine() @@ -420,7 +420,7 @@ public function articleXhr(Request $request) if ($articleBase) { if (isset($data['name']) && strlen($data['name']) > 200) { $json['alertClass'] = 'danger'; - $json['alertMessage'] = 'Name length must not be greater than 200 !!'; + $json['alertMessage'] = $this->get('translator')->trans('Name length must not be greater than 200 !!'); } else { $articleBase->setName($this->get('uvdesk.service')->htmlfilter($data['name'])); diff --git a/Controller/KnowledgebaseXHR.php b/Controller/KnowledgebaseXHR.php index 9a69000..d3b3c77 100755 --- a/Controller/KnowledgebaseXHR.php +++ b/Controller/KnowledgebaseXHR.php @@ -67,7 +67,7 @@ public function updateFolderXHR(Request $request) $entityManager->flush(); $json['alertClass'] = 'success'; - $json['alertMessage'] ='Success ! Folder updated successfully.'; + $json['alertMessage'] = $this->get('translator')->trans('Success ! Folder updated successfully.'); } else { @@ -90,7 +90,7 @@ public function updateFolderXHR(Request $request) }else{ $json['alertClass'] = 'error'; - $json['alertMessage'] = "Warning ! Folder doesn't exists!"; + $json['alertMessage'] = $this->get('translator')->trans('Warning ! Folder does not exists.'); } break; default: diff --git a/Controller/Ticket.php b/Controller/Ticket.php index 40c2b94..d6a7555 100644 --- a/Controller/Ticket.php +++ b/Controller/Ticket.php @@ -272,18 +272,12 @@ public function saveReply(int $id, Request $request) $this->get('event_dispatcher')->dispatch('uvdesk.automation.workflow.execute', $event); - $this->addFlash('success', "Success ! Reply added successfully."); + $this->addFlash('success', $this->get('translator')->trans('Success ! Reply added successfully.')); } else { - $this->addFlash( - 'warning', - $this->get('translator')->trans("Warning ! Reply field can not be blank.") - ); + $this->addFlash('warning', $this->get('translator')->trans('Warning ! Reply field can not be blank.')); } } else { - $this->addFlash( - 'warning', - $this->get('translator')->trans("Warning ! Post size can not exceed 25MB") - ); + $this->addFlash('warning', $this->get('translator')->trans('Warning ! Post size can not exceed 25MB')); } return $this->redirect($this->generateUrl('helpdesk_customer_ticket',array( diff --git a/Resources/views/Themes/cookiePolicy.html.twig b/Resources/views/Themes/cookiePolicy.html.twig index 43c6ac6..850978b 100644 --- a/Resources/views/Themes/cookiePolicy.html.twig +++ b/Resources/views/Themes/cookiePolicy.html.twig @@ -4,7 +4,7 @@

{{ 'Cookie Usage Policy'|trans }}

{{ 'Some of our site pages utilize %cookies% and other tracking technologies. A %cookie% is a small text file that may be used, for example, to collect information about site activity. Some cookies and other technologies may serve to recall personal information previously indicated by a site user. You may block cookies, or delete existing cookies, by adjusting the appropriate setting on your browser. Please consult the %help% menu of your browser to learn how to do this. If you block or delete %cookies% you may find the usefulness of our site to be impaired.'|trans({'%cookie%': '' ~ 'cookie'|trans ~ '', '%cookies%': '' ~ 'cookies'|trans ~ '', '%help%': '' ~ 'HELP'|trans ~ ''})|raw }}

-

{{ "To know more about how our privacy policy works, please %websiteLink%."|trans({'%websiteLink%': '' ~ 'visit our website' ~ ''})|raw }}

+

{{ "To know more about how our privacy policy works, please %websiteLink%."|trans({'%websiteLink%': '' ~ 'visit our website'|trans ~ ''})|raw }}

From 79f389bfea3981b6ec7e60726892f6690a071566 Mon Sep 17 00:00:00 2001 From: Sanjeev Papnoi Date: Wed, 4 Mar 2020 13:36:22 +0530 Subject: [PATCH 3/6] search translation update --- UIComponents/Dashboard/Search/Articles.php | 51 ++++++++++++++++++- UIComponents/Dashboard/Search/Categories.php | 51 ++++++++++++++++++- UIComponents/Dashboard/Search/Customers.php | 51 ++++++++++++++++++- UIComponents/Dashboard/Search/Folders.php | 51 ++++++++++++++++++- .../Dashboard/Search/SpamSettings.php | 51 ++++++++++++++++++- 5 files changed, 250 insertions(+), 5 deletions(-) diff --git a/UIComponents/Dashboard/Search/Articles.php b/UIComponents/Dashboard/Search/Articles.php index b25469a..62e654c 100644 --- a/UIComponents/Dashboard/Search/Articles.php +++ b/UIComponents/Dashboard/Search/Articles.php @@ -3,6 +3,9 @@ namespace Webkul\UVDesk\SupportCenterBundle\UIComponents\Dashboard\Search; use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\SearchItemInterface; +use Symfony\Component\Translation\Translator; +use Symfony\Component\Translation\Loader\YamlFileLoader; +use Symfony\Component\HttpFoundation\Request; class Articles implements SearchItemInterface { @@ -19,7 +22,7 @@ public static function getIcon() : string public static function getTitle() : string { - return "Articles"; + return self::dynamicTranslation("Articles"); } public static function getRouteName() : string @@ -31,4 +34,50 @@ public function getChildrenRoutes() : array { return []; } + + public static function dynamicTranslation($data) : string + { + $request = Request::createFromGlobals(); + $path = $request->getPathInfo(); + $locale = explode("/", $path); + $translator = new Translator($locale[1]); + + switch($locale[1]) + { + case 'en': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.en.yml", 'en'); + break; + case 'es': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.es.yml", 'es'); + break; + case 'fr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.fr.yml", 'fr'); + break; + case 'da': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.da.yml", 'da'); + break; + case 'de': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.de.yml", 'de'); + break; + case 'it': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.it.yml", 'it'); + break; + case 'ar': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.ar.yml", 'ar'); + break; + case 'tr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.tr.yml", 'tr'); + break; + } + + return $translator->trans($data); + } } diff --git a/UIComponents/Dashboard/Search/Categories.php b/UIComponents/Dashboard/Search/Categories.php index bcf5b7e..0399310 100644 --- a/UIComponents/Dashboard/Search/Categories.php +++ b/UIComponents/Dashboard/Search/Categories.php @@ -3,6 +3,9 @@ namespace Webkul\UVDesk\SupportCenterBundle\UIComponents\Dashboard\Search; use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\SearchItemInterface; +use Symfony\Component\Translation\Translator; +use Symfony\Component\Translation\Loader\YamlFileLoader; +use Symfony\Component\HttpFoundation\Request; class Categories implements SearchItemInterface { @@ -19,7 +22,7 @@ public static function getIcon() : string public static function getTitle() : string { - return "Categories"; + return self::dynamicTranslation("Categories"); } public static function getRouteName() : string @@ -31,4 +34,50 @@ public function getChildrenRoutes() : array { return []; } + + public static function dynamicTranslation($data) : string + { + $request = Request::createFromGlobals(); + $path = $request->getPathInfo(); + $locale = explode("/", $path); + $translator = new Translator($locale[1]); + + switch($locale[1]) + { + case 'en': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.en.yml", 'en'); + break; + case 'es': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.es.yml", 'es'); + break; + case 'fr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.fr.yml", 'fr'); + break; + case 'da': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.da.yml", 'da'); + break; + case 'de': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.de.yml", 'de'); + break; + case 'it': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.it.yml", 'it'); + break; + case 'ar': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.ar.yml", 'ar'); + break; + case 'tr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.tr.yml", 'tr'); + break; + } + + return $translator->trans($data); + } } diff --git a/UIComponents/Dashboard/Search/Customers.php b/UIComponents/Dashboard/Search/Customers.php index 02a9396..19902c8 100644 --- a/UIComponents/Dashboard/Search/Customers.php +++ b/UIComponents/Dashboard/Search/Customers.php @@ -3,6 +3,9 @@ namespace Webkul\UVDesk\SupportCenterBundle\UIComponents\Dashboard\Search; use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\SearchItemInterface; +use Symfony\Component\Translation\Translator; +use Symfony\Component\Translation\Loader\YamlFileLoader; +use Symfony\Component\HttpFoundation\Request; class Customers implements SearchItemInterface { @@ -19,7 +22,7 @@ public static function getIcon() : string public static function getTitle() : string { - return "Customers"; + return self::dynamicTranslation("Customers"); } public static function getRouteName() : string @@ -31,4 +34,50 @@ public function getChildrenRoutes() : array { return []; } + + public static function dynamicTranslation($data) : string + { + $request = Request::createFromGlobals(); + $path = $request->getPathInfo(); + $locale = explode("/", $path); + $translator = new Translator($locale[1]); + + switch($locale[1]) + { + case 'en': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.en.yml", 'en'); + break; + case 'es': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.es.yml", 'es'); + break; + case 'fr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.fr.yml", 'fr'); + break; + case 'da': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.da.yml", 'da'); + break; + case 'de': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.de.yml", 'de'); + break; + case 'it': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.it.yml", 'it'); + break; + case 'ar': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.ar.yml", 'ar'); + break; + case 'tr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.tr.yml", 'tr'); + break; + } + + return $translator->trans($data); + } } diff --git a/UIComponents/Dashboard/Search/Folders.php b/UIComponents/Dashboard/Search/Folders.php index 97e9c84..f9373ee 100644 --- a/UIComponents/Dashboard/Search/Folders.php +++ b/UIComponents/Dashboard/Search/Folders.php @@ -3,6 +3,9 @@ namespace Webkul\UVDesk\SupportCenterBundle\UIComponents\Dashboard\Search; use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\SearchItemInterface; +use Symfony\Component\Translation\Translator; +use Symfony\Component\Translation\Loader\YamlFileLoader; +use Symfony\Component\HttpFoundation\Request; class Folders implements SearchItemInterface { @@ -19,7 +22,7 @@ public static function getIcon() : string public static function getTitle() : string { - return "Folders"; + return self::dynamicTranslation("Folders"); } public static function getRouteName() : string @@ -31,4 +34,50 @@ public function getChildrenRoutes() : array { return []; } + + public static function dynamicTranslation($data) : string + { + $request = Request::createFromGlobals(); + $path = $request->getPathInfo(); + $locale = explode("/", $path); + $translator = new Translator($locale[1]); + + switch($locale[1]) + { + case 'en': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.en.yml", 'en'); + break; + case 'es': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.es.yml", 'es'); + break; + case 'fr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.fr.yml", 'fr'); + break; + case 'da': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.da.yml", 'da'); + break; + case 'de': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.de.yml", 'de'); + break; + case 'it': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.it.yml", 'it'); + break; + case 'ar': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.ar.yml", 'ar'); + break; + case 'tr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.tr.yml", 'tr'); + break; + } + + return $translator->trans($data); + } } diff --git a/UIComponents/Dashboard/Search/SpamSettings.php b/UIComponents/Dashboard/Search/SpamSettings.php index e65036e..479831f 100644 --- a/UIComponents/Dashboard/Search/SpamSettings.php +++ b/UIComponents/Dashboard/Search/SpamSettings.php @@ -3,6 +3,9 @@ namespace Webkul\UVDesk\SupportCenterBundle\UIComponents\Dashboard\Search; use Webkul\UVDesk\CoreFrameworkBundle\Dashboard\Segments\SearchItemInterface; +use Symfony\Component\Translation\Translator; +use Symfony\Component\Translation\Loader\YamlFileLoader; +use Symfony\Component\HttpFoundation\Request; class SpamSettings implements SearchItemInterface { @@ -19,7 +22,7 @@ public static function getIcon() : string public static function getTitle() : string { - return "Spam Settings"; + return self::dynamicTranslation("Spam Settings"); } public static function getRouteName() : string @@ -31,4 +34,50 @@ public function getChildrenRoutes() : array { return []; } + + public static function dynamicTranslation($data) : string + { + $request = Request::createFromGlobals(); + $path = $request->getPathInfo(); + $locale = explode("/", $path); + $translator = new Translator($locale[1]); + + switch($locale[1]) + { + case 'en': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.en.yml", 'en'); + break; + case 'es': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.es.yml", 'es'); + break; + case 'fr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.fr.yml", 'fr'); + break; + case 'da': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.da.yml", 'da'); + break; + case 'de': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.de.yml", 'de'); + break; + case 'it': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.it.yml", 'it'); + break; + case 'ar': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.ar.yml", 'ar'); + break; + case 'tr': + $translator->addLoader('yaml', new YamlFileLoader()); + $translator->addResource('yaml',__DIR__."/../../../../../../translations/messages.tr.yml", 'tr'); + break; + } + + return $translator->trans($data); + } } From 794db8b1b3752272b862249fdbcc1de0e86fc4bb Mon Sep 17 00:00:00 2001 From: Sanjeev Papnoi Date: Thu, 5 Mar 2020 15:44:58 +0530 Subject: [PATCH 4/6] translation update --- Controller/Article.php | 4 ++-- Controller/Branding.php | 2 +- Controller/Category.php | 2 +- Controller/Folder.php | 3 ++- .../views/Knowledgebase/customerAccount.html.twig | 4 ++-- .../views/Staff/Articles/articleAddForm.html.twig | 11 ++++------- Resources/views/Staff/Articles/articleForm.html.twig | 12 ++++++------ .../views/Staff/Category/categoryForm.html.twig | 2 +- Resources/views/Staff/Folders/createFolder.html.twig | 2 +- Resources/views/Staff/Folders/updateFolder.html.twig | 8 ++++---- 10 files changed, 24 insertions(+), 26 deletions(-) diff --git a/Controller/Article.php b/Controller/Article.php index 83be8e6..c72b063 100755 --- a/Controller/Article.php +++ b/Controller/Article.php @@ -222,7 +222,7 @@ public function articleXhr(Request $request) if ($article) { if (strlen($data['name']) > 200) { - $json['errors']['name'] = 'Name length must not be greater than 200 !!'; + $json['errors']['name'] = $this->get('translator')->trans('Name length must not be greater than 200 !!'); } if (!$json['errors']) { @@ -253,7 +253,7 @@ public function articleXhr(Request $request) } else { $json['alertClass'] = 'danger'; - $json['alertMessage'] ='Warning! Correct all field values first!'; + $json['alertMessage'] = $this->get('translator')->trans('Warning! Correct all field values first!'); } } else { $json['alertClass'] = 'danger'; diff --git a/Controller/Branding.php b/Controller/Branding.php index ef493bf..d0563f2 100755 --- a/Controller/Branding.php +++ b/Controller/Branding.php @@ -178,7 +178,7 @@ public function spam(Request $request) $entityManager->persist($configuration); $entityManager->flush(); - $this->addFlash('success', 'Spam setting saved successfully.'); + $this->addFlash('success', $this->get('translator')->trans('Spam setting saved successfully.')); return $this->redirect($this->generateUrl('helpdesk_member_knowledgebase_spam')); } diff --git a/Controller/Category.php b/Controller/Category.php index 1694821..f300c96 100755 --- a/Controller/Category.php +++ b/Controller/Category.php @@ -259,7 +259,7 @@ public function categoryXhr(Request $request) $em->flush(); $json['alertClass'] = 'success'; - $json['alertMessage'] ='Success ! Category updated successfully.'; + $json['alertMessage'] = $this->get('translator')->trans('Success ! Category updated successfully.'); } else { $json['alertClass'] = 'danger'; $json['errors'] = json_encode($this->getFormErrors($form)); diff --git a/Controller/Folder.php b/Controller/Folder.php index 324ab80..b2f9e61 100755 --- a/Controller/Folder.php +++ b/Controller/Folder.php @@ -121,7 +121,8 @@ public function updateFolder($folderId) $entityManager->persist($knowledgebaseFolder); $entityManager->flush(); - $this->addFlash('success', 'Folder updated successfully.'); + $this->addFlash('success', $this->get('translator')->trans('Folder updated successfully.')); + return $this->redirect($this->generateUrl('helpdesk_member_knowledgebase_folders_collection')); } diff --git a/Resources/views/Knowledgebase/customerAccount.html.twig b/Resources/views/Knowledgebase/customerAccount.html.twig index 2c540e1..4abc1cc 100644 --- a/Resources/views/Knowledgebase/customerAccount.html.twig +++ b/Resources/views/Knowledgebase/customerAccount.html.twig @@ -300,10 +300,10 @@ if(value != undefined && value !== '') { [{ pattern: /^[A-Za-z][A-Za-z]*[\sA-Za-z]*$/, - msg: 'This field must have characters only' + msg: '{{ "This field must have characters only"|trans }}' },{ maxLength:40, - msg:'Maximum character length is 40' + msg: '{{ "Maximum character length is 40"|trans }}' }] } }, diff --git a/Resources/views/Staff/Articles/articleAddForm.html.twig b/Resources/views/Staff/Articles/articleAddForm.html.twig index 15cc695..e283291 100644 --- a/Resources/views/Staff/Articles/articleAddForm.html.twig +++ b/Resources/views/Staff/Articles/articleAddForm.html.twig @@ -224,13 +224,13 @@ validation: { 'name': [{ required: true, - msg: 'This field is mandatory' + msg: '{{ "This field is mandatory"|trans }}' },{ maxLength:200, - msg: 'This field contain maximum 200 charecters only' + msg: '{{ "This field contain maximum 200 charecters only"|trans }}' }, { pattern: '^((?![$%<]).)*$', - msg: 'This field must have valid characters only' + msg: '{{ "This field must have valid characters only"|trans }}' }], 'slug': function(val, attr, computed) { var elSlug = $("[name=" + attr + "]"); @@ -242,9 +242,7 @@ } if(elSlugValue.length > 100) { - console.log("invalid lenth"); - return "This field slug contains maximum 100 charecters only."; - + return '{{ "This field slug contains maximum 100 charecters only."|trans }}'; } } }, @@ -260,7 +258,6 @@ el: '.uv-paper', model : articlemodel }); - }); diff --git a/Resources/views/Staff/Articles/articleForm.html.twig b/Resources/views/Staff/Articles/articleForm.html.twig index 545f541..2ed80d1 100644 --- a/Resources/views/Staff/Articles/articleForm.html.twig +++ b/Resources/views/Staff/Articles/articleForm.html.twig @@ -659,21 +659,21 @@ validation: { 'name': [{ required: true, - msg: 'This field is mandatory' + msg: '{{ "This field is mandatory"|trans }}' },{ maxLength:200, - msg: 'This field contain maximum 200 charecters only' + msg: '{{ "This field contain maximum 200 charecters only"|trans }}' }, { pattern: '^((?![$%<]).)*$', - msg: 'This field must have valid characters only' + msg: '{{ "This field must have valid characters only"|trans }}' }], 'metaTitle':[{ maxLength:200, - msg: 'This field contain mata title maximum 200 charecters only' + msg: '{{ "This field contain mata title maximum 200 charecters only"|trans }}' }], 'keywords':[{ maxLength:200, - msg: 'This field contain keywords maximum 200 charecters only' + msg: '{{ "This field contain keywords maximum 200 charecters only"|trans }}' }], 'slug': function(val, attr, computed) { var elSlug = $("[name=" + attr + "]"); @@ -685,7 +685,7 @@ } if(elSlugValue.length > 100) { - return "This field slug contains maximum 100 charecters only."; + return '{{ "This field slug contains maximum 100 charecters only."|trans }}'; } } }, diff --git a/Resources/views/Staff/Category/categoryForm.html.twig b/Resources/views/Staff/Category/categoryForm.html.twig index 95ea08f..1254886 100644 --- a/Resources/views/Staff/Category/categoryForm.html.twig +++ b/Resources/views/Staff/Category/categoryForm.html.twig @@ -140,7 +140,7 @@ msg: "{{ 'This field must have valid characters only'|trans }}" },{ maxLength:50, - msg:"This field contain maximum 50 charectures." + msg: "{{ 'This field contain maximum 50 charectures.'|trans }}" }], 'sortOrder': { pattern: '^[0-9]*$', diff --git a/Resources/views/Staff/Folders/createFolder.html.twig b/Resources/views/Staff/Folders/createFolder.html.twig index 3f043da..072c34a 100644 --- a/Resources/views/Staff/Folders/createFolder.html.twig +++ b/Resources/views/Staff/Folders/createFolder.html.twig @@ -80,7 +80,7 @@ msg: "{{ 'This field must have valid characters only'|trans }}" },{ maxLength:40, - msg:"This field contain maximum 40 charectures." + msg: "{{ 'This field contain maximum 40 charectures.'|trans }}" }], 'description': { required: true, diff --git a/Resources/views/Staff/Folders/updateFolder.html.twig b/Resources/views/Staff/Folders/updateFolder.html.twig index 4de172f..c065589 100644 --- a/Resources/views/Staff/Folders/updateFolder.html.twig +++ b/Resources/views/Staff/Folders/updateFolder.html.twig @@ -74,18 +74,18 @@ validation: { 'name': [{ required: true, - msg: 'This field is mandatory' + msg: "{{ 'This field is mandatory'|trans }}" }, { pattern: '^((?![$%<]).)*$', - msg: 'This field must have valid characters only' + msg: "{{ 'This field must have valid characters only'|trans }}" }, { maxLength:40, - msg:"This field contain maximum 40 charectures." + msg: "{{ 'This field contain maximum 40 charectures.'|trans }}" }], 'description': { required: true, - msg:'This field is mandatory' + msg: "{{ 'This field is mandatory'|trans }}" } } }); From 852578866914c72a794b45558a1b2a388f4ca3c7 Mon Sep 17 00:00:00 2001 From: Sanjeev Papnoi Date: Thu, 5 Mar 2020 18:51:35 +0530 Subject: [PATCH 5/6] collaborator ticket view issue resolved --- Controller/Ticket.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Controller/Ticket.php b/Controller/Ticket.php index d6a7555..a694090 100644 --- a/Controller/Ticket.php +++ b/Controller/Ticket.php @@ -347,7 +347,7 @@ public function ticketView($id, Request $request) $entityManager = $this->getDoctrine()->getManager(); $user = $this->get('user.service')->getSessionUser(); - $ticket = $entityManager->getRepository(TicketEntity::class)->findOneBy(['id' => $id, 'customer' => $user]); + $ticket = $entityManager->getRepository(TicketEntity::class)->findOneBy(['id' => $id]); if (empty($ticket)) { throw new NotFoundHttpException('Page Not Found!'); From 636c62725eb39280ace23222113f50eceeda17c4 Mon Sep 17 00:00:00 2001 From: Sanjeev Papnoi Date: Tue, 17 Mar 2020 13:44:04 +0530 Subject: [PATCH 6/6] updates --- CHANGELOG-1.0.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG-1.0.md b/CHANGELOG-1.0.md index 64abe88..ab5c8bb 100644 --- a/CHANGELOG-1.0.md +++ b/CHANGELOG-1.0.md @@ -3,6 +3,13 @@ CHANGELOG for 1.0.x This changelog references any relevant changes introduced in 1.0 minor versions. +* 1.0.5 (2020-03-17) + * **Misc. Updates:** + * Added Missing translations. + + * **Bug. Fixes:** + * **Issue #99:** Getting exception when collaborator login to support panel. + * 1.0.4 (2020-02-12) * **Misc. Updates:** * Included Github issue templates.