- {`${t("titles.app")} ${
+ {`${InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")})} ${
import.meta.env.VITE_APP_GIT_SHA || 'Local Build'
} - ${import.meta.env.VITE_APP_GIT_SHA_DATE}`}
diff --git a/client/src/pages/owners-detail/owners-detail.page.container.jsx b/client/src/pages/owners-detail/owners-detail.page.container.jsx
index 36346cabf..9a1c2ed3e 100644
--- a/client/src/pages/owners-detail/owners-detail.page.container.jsx
+++ b/client/src/pages/owners-detail/owners-detail.page.container.jsx
@@ -12,6 +12,7 @@ import {CreateRecentItem} from "../../utils/create-recent-item";
import OwnersDetailComponent from "./owners-detail.page.component";
import NotFound from "../../components/not-found/not-found.component";
import {OwnerNameDisplayFunction} from "../../components/owner-name-display/owner-name-display.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -35,6 +36,7 @@ export function OwnersDetailContainer({
useEffect(() => {
document.title = t("titles.owners-detail", {
+ app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'}),
name: data ? OwnerNameDisplayFunction(data.owners_by_pk) : "",
});
setSelectedHeader("owners");
diff --git a/client/src/pages/owners/owners.page.container.jsx b/client/src/pages/owners/owners.page.container.jsx
index e0545e560..e796e0cb8 100644
--- a/client/src/pages/owners/owners.page.container.jsx
+++ b/client/src/pages/owners/owners.page.container.jsx
@@ -4,6 +4,7 @@ import {useTranslation} from "react-i18next";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {connect} from "react-redux";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -13,7 +14,7 @@ const mapDispatchToProps = (dispatch) => ({
export function OwnersPageContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.owners");
+ document.title = t("titles.owners",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("owners");
setBreadcrumbs([{link: "/manage/owners", label: t("titles.bc.owners")}]);
}, [t, setBreadcrumbs, setSelectedHeader]);
diff --git a/client/src/pages/parts-queue/parts-queue.page.container.jsx b/client/src/pages/parts-queue/parts-queue.page.container.jsx
index 6c69d9609..1ec99b606 100644
--- a/client/src/pages/parts-queue/parts-queue.page.container.jsx
+++ b/client/src/pages/parts-queue/parts-queue.page.container.jsx
@@ -5,6 +5,7 @@ import PartsQueueDetailCard from "../../components/parts-queue-card/parts-queue-
import PartsQueueList from "../../components/parts-queue-list/parts-queue.list.component";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -15,7 +16,7 @@ export function PartsQueuePageContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.parts-queue");
+ document.title = t("titles.parts-queue",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("parts-queue");
setBreadcrumbs([
{link: "/manage/partsqueue", label: t("titles.bc.parts-queue")},
diff --git a/client/src/pages/payments-all/payments-all.container.page.jsx b/client/src/pages/payments-all/payments-all.container.page.jsx
index 2cfc205cb..61c3875d6 100644
--- a/client/src/pages/payments-all/payments-all.container.page.jsx
+++ b/client/src/pages/payments-all/payments-all.container.page.jsx
@@ -13,6 +13,7 @@ import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/applic
import {selectBodyshop} from "../../redux/user/user.selectors";
import {pageLimit} from "../../utils/config";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
@@ -52,7 +53,7 @@ export function AllJobs({bodyshop, setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.payments-all");
+ document.title = t("titles.payments-all",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("allpayments");
setBreadcrumbs([
{link: "/manage/payments", label: t("titles.bc.payments-all")},
diff --git a/client/src/pages/phonebook/phonebook.page.container.jsx b/client/src/pages/phonebook/phonebook.page.container.jsx
index 1aeee64ce..71d5a4594 100644
--- a/client/src/pages/phonebook/phonebook.page.container.jsx
+++ b/client/src/pages/phonebook/phonebook.page.container.jsx
@@ -8,6 +8,7 @@ import {Drawer, Grid} from "antd";
import {useLocation, useNavigate} from "react-router-dom";
import PhonebookFormContainer from "../../components/phonebook-form/phonebook-form.container";
import queryString from "query-string";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -18,7 +19,7 @@ export function PhonebookContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.phonebook");
+ document.title = t("titles.phonebook", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("phonebook");
setBreadcrumbs([
{
@@ -66,4 +67,4 @@ export function PhonebookContainer({setBreadcrumbs, setSelectedHeader}) {
);
}
-export default connect(null, mapDispatchToProps)(PhonebookContainer);
\ No newline at end of file
+export default connect(null, mapDispatchToProps)(PhonebookContainer);
diff --git a/client/src/pages/production-board/production-board.container.jsx b/client/src/pages/production-board/production-board.container.jsx
index 4a99fc480..33d60ebc6 100644
--- a/client/src/pages/production-board/production-board.container.jsx
+++ b/client/src/pages/production-board/production-board.container.jsx
@@ -7,6 +7,7 @@ import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/applic
import {selectBodyshop} from "../../redux/user/user.selectors";
import ProductionBoardComponent from "./production-board.component";
import FeatureWrapper from "../../components/feature-wrapper/feature-wrapper.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
@@ -25,7 +26,7 @@ export function ProductionBoardContainer({
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.productionboard");
+ document.title = t("titles.productionboard",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("productionboard");
setBreadcrumbs([
{
diff --git a/client/src/pages/production-list/production-list.container.jsx b/client/src/pages/production-list/production-list.container.jsx
index 396cbc777..312fd63b2 100644
--- a/client/src/pages/production-list/production-list.container.jsx
+++ b/client/src/pages/production-list/production-list.container.jsx
@@ -4,6 +4,7 @@ import {connect} from "react-redux";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import ProductionListComponent from "./production-list.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -18,7 +19,7 @@ export function ProductionListContainer({
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.productionlist");
+ document.title = t("titles.productionlist",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("productionlist");
setBreadcrumbs([
{link: "/manage/production/list", label: t("titles.bc.productionlist")},
diff --git a/client/src/pages/profile/profile.container.page.jsx b/client/src/pages/profile/profile.container.page.jsx
index 4a2270799..a28c11e2a 100644
--- a/client/src/pages/profile/profile.container.page.jsx
+++ b/client/src/pages/profile/profile.container.page.jsx
@@ -3,6 +3,7 @@ import {useTranslation} from "react-i18next";
import {connect} from "react-redux";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import ProfilePage from "./profile.page";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -16,7 +17,7 @@ export function ProfileContainerPage({setBreadcrumbs, setSelectedHeader}) {
setBreadcrumbs([
{link: "/manage/profile", label: t("titles.bc.profile")},
]);
- document.title = t("titles.profile");
+ document.title = t("titles.profile",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
}, [t, setBreadcrumbs, setSelectedHeader]);
return
;
diff --git a/client/src/pages/schedule/schedule.page.container.jsx b/client/src/pages/schedule/schedule.page.container.jsx
index 3be56c9f8..dfbf390b2 100644
--- a/client/src/pages/schedule/schedule.page.container.jsx
+++ b/client/src/pages/schedule/schedule.page.container.jsx
@@ -4,6 +4,7 @@ import {connect} from "react-redux";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import SchedulePageComponent from "./schedule.page.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -14,7 +15,7 @@ export function SchedulePageContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.schedule");
+ document.title = t("titles.schedule",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("schedule");
setBreadcrumbs([
{link: "/manage/schedule", label: t("titles.bc.schedule")},
diff --git a/client/src/pages/scoreboard/scoreboard.page.container.jsx b/client/src/pages/scoreboard/scoreboard.page.container.jsx
index 1550a6087..92138057b 100644
--- a/client/src/pages/scoreboard/scoreboard.page.container.jsx
+++ b/client/src/pages/scoreboard/scoreboard.page.container.jsx
@@ -14,6 +14,7 @@ import ScoreboardTimeTicketsStats from "../../components/scoreboard-timetickets-
import ScoreboardTimeTickets from "../../components/scoreboard-timetickets/scoreboard-timetickets.component";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
/**
* Mapping state to props
@@ -46,7 +47,7 @@ export function ScoreboardContainer({setBreadcrumbs, setSelectedHeader}) {
* useEffect hook to set document title, selected header and breadcrumbs
*/
useEffect(() => {
- document.title = t("titles.scoreboard");
+ document.title = t("titles.scoreboard",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("scoreboard");
setBreadcrumbs([
{
@@ -106,4 +107,4 @@ export function ScoreboardContainer({setBreadcrumbs, setSelectedHeader}) {
export default connect(
mapStateToProps,
mapDispatchToProps
-)(ScoreboardContainer);
\ No newline at end of file
+)(ScoreboardContainer);
diff --git a/client/src/pages/shop-csi/shop-csi.container.page.jsx b/client/src/pages/shop-csi/shop-csi.container.page.jsx
index be3cc2d64..b8763b78f 100644
--- a/client/src/pages/shop-csi/shop-csi.container.page.jsx
+++ b/client/src/pages/shop-csi/shop-csi.container.page.jsx
@@ -12,6 +12,7 @@ import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
import {QUERY_CSI_RESPONSE_PAGINATED} from "../../graphql/csi.queries";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
@@ -38,7 +39,7 @@ export function ShopCsiContainer({
);
useEffect(() => {
- document.title = t("titles.shop-csi");
+ document.title = t("titles.shop-csi",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("shop-csi");
setBreadcrumbs([
{
@@ -70,4 +71,4 @@ export function ShopCsiContainer({
);
}
-export default connect(mapStateToProps, mapDispatchToProps)(ShopCsiContainer);
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(ShopCsiContainer);
diff --git a/client/src/pages/shop-vendor/shop-vendor.page.container.jsx b/client/src/pages/shop-vendor/shop-vendor.page.container.jsx
index 8d092bd02..3729f0ca4 100644
--- a/client/src/pages/shop-vendor/shop-vendor.page.container.jsx
+++ b/client/src/pages/shop-vendor/shop-vendor.page.container.jsx
@@ -7,6 +7,7 @@ import {connect} from "react-redux";
import {createStructuredSelector} from "reselect";
import {selectBodyshop} from "../../redux/user/user.selectors";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
@@ -23,7 +24,7 @@ export function ShopVendorPageContainer({
}) {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.shop_vendors");
+ document.title = t("titles.shop_vendors", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("shop-vendors");
setBreadcrumbs([
{
diff --git a/client/src/pages/shop/shop.page.component.jsx b/client/src/pages/shop/shop.page.component.jsx
index 6c21ac75e..5165d1232 100644
--- a/client/src/pages/shop/shop.page.component.jsx
+++ b/client/src/pages/shop/shop.page.component.jsx
@@ -7,7 +7,7 @@ import ShopEmployeesContainer from "../../components/shop-employees/shop-employe
import ShopInfoContainer from "../../components/shop-info/shop-info.container";
import ShopCsiConfig from "../../components/shop-csi-config/shop-csi-config.component";
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
-
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
import {connect} from "react-redux";
import {createStructuredSelector} from "reselect";
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
@@ -30,7 +30,7 @@ export function ShopPage({bodyshop, setSelectedHeader, setBreadcrumbs}) {
const search = queryString.parse(useLocation().search);
useEffect(() => {
- document.title = t("titles.shop");
+ document.title = t("titles.shop",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("shop");
setBreadcrumbs([
{
diff --git a/client/src/pages/tech-job-clock/tech-job-clock.component.jsx b/client/src/pages/tech-job-clock/tech-job-clock.component.jsx
index 1b95af5f4..765713209 100644
--- a/client/src/pages/tech-job-clock/tech-job-clock.component.jsx
+++ b/client/src/pages/tech-job-clock/tech-job-clock.component.jsx
@@ -4,12 +4,13 @@ import {useTranslation} from "react-i18next";
import TechClockInFormContainer from "../../components/tech-job-clock-in-form/tech-job-clock-in-form.container";
import TechClockedInList from "../../components/tech-job-clocked-in-list/tech-job-clocked-in-list.component";
import TechJobStatistics from "../../components/tech-job-statistics/tech-job-statistics.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
export default function TechClockComponent() {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.techjobclock");
+ document.title = t("titles.techjobclock", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
}, [t]);
return (
diff --git a/client/src/pages/tech-lookup/tech-lookup.container.jsx b/client/src/pages/tech-lookup/tech-lookup.container.jsx
index f83e97239..a00c6becb 100644
--- a/client/src/pages/tech-lookup/tech-lookup.container.jsx
+++ b/client/src/pages/tech-lookup/tech-lookup.container.jsx
@@ -2,12 +2,13 @@ import React, {useEffect} from "react";
import {useTranslation} from "react-i18next";
import RbacWrapperComponent from "../../components/rbac-wrapper/rbac-wrapper.component";
import TechLookupJobsList from "../../components/tech-lookup-jobs-list/tech-lookup-jobs-list.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
export default function TechLookupContainer() {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.techjoblookup");
+ document.title = t("titles.techjoblookup", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
}, [t]);
return (
diff --git a/client/src/pages/tech-shift-clock/tech-shift-clock.component.jsx b/client/src/pages/tech-shift-clock/tech-shift-clock.component.jsx
index 5c25dc897..67491dda6 100644
--- a/client/src/pages/tech-shift-clock/tech-shift-clock.component.jsx
+++ b/client/src/pages/tech-shift-clock/tech-shift-clock.component.jsx
@@ -1,12 +1,13 @@
import React, {useEffect} from "react";
import {useTranslation} from "react-i18next";
import TimeTicketShift from "../../components/time-ticket-shift/time-ticket-shift.container";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
export default function TechShiftClock() {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.techshiftclock");
+ document.title = t("titles.techshiftclock",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
}, [t]);
return (
diff --git a/client/src/pages/tech/tech.page.component.jsx b/client/src/pages/tech/tech.page.component.jsx
index a2e1ac601..6366082fb 100644
--- a/client/src/pages/tech/tech.page.component.jsx
+++ b/client/src/pages/tech/tech.page.component.jsx
@@ -13,6 +13,7 @@ import TechLookupJobsDrawer from "../../components/tech-lookup-jobs-drawer/tech-
import TechSider from "../../components/tech-sider/tech-sider.component";
import UpdateAlert from "../../components/update-alert/update-alert.component";
import {selectTechnician} from "../../redux/tech/tech.selectors";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
import "./tech.page.styles.scss";
const TimeTicketModalContainer = lazy(() =>
@@ -66,7 +67,7 @@ export function TechPage({technician}) {
const navigate = useNavigate();
useEffect(() => {
- document.title = t("titles.app");
+ document.title = InstanceRenderManager({imex: t("titles.imexonline"), rome: t("titles.romeonline"), promanager:t("titles.promanager")});
}, [t]);
useEffect(() => {
@@ -86,7 +87,7 @@ export function TechPage({technician}) {
+
}
>
@@ -115,4 +116,4 @@ export function TechPage({technician}) {
);
}
-export default connect(mapStateToProps, mapDispatchToProps)(TechPage);
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(TechPage);
diff --git a/client/src/pages/temporary-docs/temporary-docs.container.jsx b/client/src/pages/temporary-docs/temporary-docs.container.jsx
index 6230fece1..652107cf7 100644
--- a/client/src/pages/temporary-docs/temporary-docs.container.jsx
+++ b/client/src/pages/temporary-docs/temporary-docs.container.jsx
@@ -7,6 +7,7 @@ import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/applic
import {selectBodyshop} from "../../redux/user/user.selectors";
import TemporaryDocsComponent from "./temporary-docs.component";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
@@ -21,7 +22,7 @@ export function TempDocumentsContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.temporarydocs");
+ document.title = t("titles.temporarydocs",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("temporarydocs");
setBreadcrumbs([
{
diff --git a/client/src/pages/time-tickets/time-tickets.container.jsx b/client/src/pages/time-tickets/time-tickets.container.jsx
index 0c426c622..0c1bc69c4 100644
--- a/client/src/pages/time-tickets/time-tickets.container.jsx
+++ b/client/src/pages/time-tickets/time-tickets.container.jsx
@@ -20,6 +20,7 @@ import TimeTicketsAttendanceTable
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import TimeTicketsCommit from "../../components/time-tickets-commit/time-tickets-commit.component";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({});
@@ -52,7 +53,7 @@ export function TimeTicketsContainer({
});
useEffect(() => {
- document.title = t("titles.timetickets");
+ document.title = t("titles.timetickets",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("timetickets");
setBreadcrumbs([
{
diff --git a/client/src/pages/tt-approvals/tt-approvals.page.container.jsx b/client/src/pages/tt-approvals/tt-approvals.page.container.jsx
index 92b36003d..989816720 100644
--- a/client/src/pages/tt-approvals/tt-approvals.page.container.jsx
+++ b/client/src/pages/tt-approvals/tt-approvals.page.container.jsx
@@ -7,6 +7,7 @@ import TtApprovalsList from "../../components/tt-approvals-list/tt-approvals-lis
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
import {selectBodyshop} from "../../redux/user/user.selectors";
import FeatureWrapperComponent from "../../components/feature-wrapper/feature-wrapper.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
@@ -21,7 +22,7 @@ export function TtApprovalsPage({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.ttapprovals");
+ document.title = t("titles.ttapprovals",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("ttapprovals");
setBreadcrumbs([
{
diff --git a/client/src/pages/vehicles-detail/vehicles-detail.page.container.jsx b/client/src/pages/vehicles-detail/vehicles-detail.page.container.jsx
index 04209b583..4df727606 100644
--- a/client/src/pages/vehicles-detail/vehicles-detail.page.container.jsx
+++ b/client/src/pages/vehicles-detail/vehicles-detail.page.container.jsx
@@ -10,6 +10,7 @@ import {addRecentItem, setBreadcrumbs, setSelectedHeader,} from "../../redux/app
import {connect} from "react-redux";
import {CreateRecentItem} from "../../utils/create-recent-item";
import NotFound from "../../components/not-found/not-found.component";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -33,6 +34,7 @@ export function VehicleDetailContainer({
useEffect(() => {
document.title = t("titles.vehicledetail", {
+ app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'}),
vehicle:
data && data.vehicles_by_pk
? `${(data.vehicles_by_pk && data.vehicles_by_pk.v_model_yr) || ""} ${
diff --git a/client/src/pages/vehicles/vehicles.page.container.jsx b/client/src/pages/vehicles/vehicles.page.container.jsx
index d65f45deb..8c56c7030 100644
--- a/client/src/pages/vehicles/vehicles.page.container.jsx
+++ b/client/src/pages/vehicles/vehicles.page.container.jsx
@@ -2,6 +2,7 @@ import React, {useEffect} from "react";
import VehiclesPageComponent from "./vehicles.page.component";
import {useTranslation} from "react-i18next";
import {connect} from "react-redux";
+import InstanceRenderManager from '../../utils/instanceRenderMgr';
import {setBreadcrumbs, setSelectedHeader,} from "../../redux/application/application.actions";
@@ -14,7 +15,7 @@ export function VehiclesPageContainer({setBreadcrumbs, setSelectedHeader}) {
const {t} = useTranslation();
useEffect(() => {
- document.title = t("titles.vehicles");
+ document.title = t("titles.vehicles",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})} );
setSelectedHeader("vehicles");
setBreadcrumbs([
{link: "/manage/vehicles", label: t("titles.bc.vehicles")},
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index a4da7a3e8..c3b8b86e1 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -760,7 +760,7 @@
"driverinformation": "Driver's Information",
"findcontract": "Find Contract",
"findermodal": "Contract Finder",
- "insuranceexpired": "The courtesy car insurance expires before the car is expected to return.",
+ "insuranceexpired": "The courtesy car insurance expires before the car is expected to return.",
"noteconvertedfrom": "R.O. created from converted Courtesy Car Contract {{agreementnumber}}.",
"populatefromjob": "Populate from Job",
"rates": "Contract Rates",
@@ -859,8 +859,8 @@
"created_at": "Created At"
},
"labels": {
- "nologgedinuser": "Please log out of $t(titles.app)",
- "nologgedinuser_sub": "Users of $t(titles.app) cannot complete CSI surveys while logged in. Please log out and try again.",
+ "nologgedinuser": "Please log out of {{app}}",
+ "nologgedinuser_sub": "Users of {{app}} cannot complete CSI surveys while logged in. Please log out and try again.",
"noneselected": "No response selected.",
"title": "Customer Satisfaction Survey"
},
@@ -881,7 +881,7 @@
"labels": {
"bodyhrs": "Body Hrs",
"dollarsinproduction": "Dollars in Production",
- "phone": "Phone",
+ "phone": "Phone",
"prodhrs": "Production Hrs",
"refhrs": "Refinish Hrs"
},
@@ -898,8 +898,8 @@
"productionhours": "Total Hours in Production",
"projectedmonthlysales": "Projected Monthly Sales",
"scheduledindate": "Sheduled In Today: {{date}}",
- "scheduledintoday": "Sheduled In Today",
- "scheduledoutdate": "Sheduled Out Today: {{date}}",
+ "scheduledintoday": "Sheduled In Today",
+ "scheduledoutdate": "Sheduled Out Today: {{date}}",
"scheduledouttoday": "Sheduled Out Today"
}
},
@@ -1142,12 +1142,12 @@
"help": "Help",
"hours": "hrs",
"in": "In",
- "instanceconflictext": "Your $t(titles.app) account can only be used on one device at any given time. Refresh your session to take control.",
+ "instanceconflictext": "Your {{app}} account can only be used on one device at any given time. Refresh your session to take control.",
"instanceconflictitle": "Your account is being used elsewhere.",
"item": "Item",
"label": "Label",
"loading": "Loading...",
- "loadingapp": "Loading $t(titles.app)",
+ "loadingapp": "Loading {{app}}",
"loadingshop": "Loading shop data...",
"loggingin": "Authorizing...",
"markedexported": "Manually marked as exported.",
@@ -1202,15 +1202,15 @@
"spanish": "Spanish"
},
"messages": {
- "exception": "$t(titles.app) has encountered an error. Please try again. If the problem persists, please submit a support ticket or contact us.",
- "newversionmessage": "Click refresh below to update to the latest available version of $t(titles.app). Please make sure all other tabs and windows are closed.",
- "newversiontitle": "New version of $t(titles.app) Available",
+ "exception": "{{app}} has encountered an error. Please try again. If the problem persists, please submit a support ticket or contact us.",
+ "newversionmessage": "Click refresh below to update to the latest available version of {{app}}. Please make sure all other tabs and windows are closed.",
+ "newversiontitle": "New version of {{app}} Available",
"noacctfilepath": "There is no accounting file path set. You will not be able to export any items.",
- "nofeatureaccess": "You do not have access to this feature of $t(titles.app). Please contact support to request a license for this feature.",
+ "nofeatureaccess": "You do not have access to this feature of {{app}}. Please contact support to request a license for this feature.",
"noshop": "You do not have access to any shops. Please reach out to your shop manager or technical support. ",
"notfoundsub": "Please make sure that you have access to the data or that the link is correct.",
"notfoundtitle": "We couldn't find what you're looking for...",
- "partnernotrunning": "$t(titles.app) has detected that the partner is not running. Please ensure it is running to enable full functionality.",
+ "partnernotrunning": "{{app}} has detected that the partner is not running. Please ensure it is running to enable full functionality.",
"rbacunauth": "You are not authorized to view this content. Please reach out to your shop manager to change your access level.",
"unsavedchanges": "You have unsaved changes.",
"unsavedchangespopup": "You have unsaved changes. Are you sure you want to leave?"
@@ -1227,7 +1227,7 @@
},
"labels": {
"codeplacholder": "6 digit PIN code",
- "rescuedesc": "Enter the 6 digit code provided by $t(titles.app) Support below and click connect.",
+ "rescuedesc": "Enter the 6 digit code provided by {{app}} Support below and click connect.",
"rescuetitle": "Rescue Me!"
}
},
@@ -1823,7 +1823,7 @@
"ca_gst_all_if_null": "If the Job is marked as a \"GST Registrant\" and this value is set to $0, the customer will be responsible for paying all of the GST by default. ",
"calc_repair_days": "Calculated Repair Days",
"calc_repair_days_tt": "This is the approximate number of days required to complete the repair according to the target touch time in your shop configuration (current set to {{target_touchtime}}).",
- "calc_scheuled_completion": "Calculate Scheduled Completion",
+ "calc_scheuled_completion": "Calculate Scheduled Completion",
"cards": {
"customer": "Customer Information",
"damage": "Area of Damage",
@@ -1991,7 +1991,7 @@
"total_sales_tax": "Total Sales Tax",
"totals": "Totals",
"unvoidnote": "This Job was unvoided.",
- "update_scheduled_completion": "Update Scheduled Completion?",
+ "update_scheduled_completion": "Update Scheduled Completion?",
"vehicle_info": "Vehicle",
"vehicleassociation": "Vehicle Association",
"viewallocations": "View Allocations",
@@ -2701,16 +2701,16 @@
"generate": "Generate"
},
"labels": {
- "advanced_filters": "Advanced Filters and Sorters",
- "advanced_filters_show": "Show",
- "advanced_filters_hide": "Hide",
- "advanced_filters_filters": "Filters",
- "advanced_filters_sorters": "Sorters",
- "advanced_filters_filter_field": "Field",
- "advanced_filters_sorter_field": "Field",
- "advanced_filters_sorter_direction": "Direction",
- "advanced_filters_filter_operator": "Operator",
- "advanced_filters_filter_value": "Value",
+ "advanced_filters": "Advanced Filters and Sorters",
+ "advanced_filters_filter_field": "Field",
+ "advanced_filters_filter_operator": "Operator",
+ "advanced_filters_filter_value": "Value",
+ "advanced_filters_filters": "Filters",
+ "advanced_filters_hide": "Hide",
+ "advanced_filters_show": "Show",
+ "advanced_filters_sorter_direction": "Direction",
+ "advanced_filters_sorter_field": "Field",
+ "advanced_filters_sorters": "Sorters",
"dates": "Dates",
"employee": "Employee",
"filterson": "Filters on {{object}}: {{field}}",
@@ -3022,9 +3022,9 @@
}
},
"titles": {
- "accounting-payables": "Payables | $t(titles.app)",
- "accounting-payments": "Payments | $t(titles.app)",
- "accounting-receivables": "Receivables | $t(titles.app)",
+ "accounting-payables": "Payables | {{app}}",
+ "accounting-payments": "Payments | {{app}}",
+ "accounting-receivables": "Receivables | {{app}}",
"app": "Rome Online",
"bc": {
"accounting-payables": "Payables",
@@ -3073,55 +3073,58 @@
"vehicle-details": "Vehicle: {{vehicle}}",
"vehicles": "Vehicles"
},
- "bills-list": "Bills | $t(titles.app)",
- "contracts": "Courtesy Car Contracts | $t(titles.app)",
- "contracts-create": "New Contract | $t(titles.app)",
- "contracts-detail": "Contract {{id}} | $t(titles.app)",
- "courtesycars": "Courtesy Cars | $t(titles.app)",
- "courtesycars-create": "New Courtesy Car | $t(titles.app)",
- "courtesycars-detail": "Courtesy Car {{id}} | $t(titles.app)",
- "dashboard": "Dashboard | $t(titles.app)",
- "dms": "DMS Export | $t(titles.app)",
- "export-logs": "Export Logs | $t(titles.app)",
- "inventory": "Inventory | $t(titles.app)",
- "jobs": "Active Jobs | $t(titles.app)",
- "jobs-admin": "Job {{ro_number}} - Admin | $t(titles.app)",
- "jobs-all": "All Jobs | $t(titles.app)",
- "jobs-checklist": "Job Checklist | $t(titles.app)",
- "jobs-close": "Close Job {{number}} | $t(titles.app)",
- "jobs-create": "Create a New Job | $t(titles.app)",
- "jobs-deliver": "Deliver Job | $t(titles.app)",
- "jobs-intake": "Intake | $t(titles.app)",
- "jobsavailable": "Available Jobs | $t(titles.app)",
- "jobsdetail": "Job {{ro_number}} | $t(titles.app)",
- "jobsdocuments": "Job Documents {{ro_number}} | $t(titles.app)",
- "manageroot": "Home | $t(titles.app)",
- "owners": "All Owners | $t(titles.app)",
- "owners-detail": "{{name}} | $t(titles.app)",
- "parts-queue": "Parts Queue | $t(titles.app)",
- "payments-all": "Payments | $t(titles.app)",
- "phonebook": "Phonebook | $t(titles.app)",
- "productionboard": "Production Board - Visual | $t(titles.app)",
- "productionlist": "Production Board - List | $t(titles.app)",
- "profile": "My Profile | $t(titles.app)",
- "readyjobs": "Ready Jobs | $t(titles.app)",
+ "bills-list": "Bills | {{app}}",
+ "contracts": "Courtesy Car Contracts | {{app}}",
+ "contracts-create": "New Contract | {{app}}",
+ "contracts-detail": "Contract {{id}} | {{app}}",
+ "courtesycars": "Courtesy Cars | {{app}}",
+ "courtesycars-create": "New Courtesy Car | {{app}}",
+ "courtesycars-detail": "Courtesy Car {{id}} | {{app}}",
+ "dashboard": "Dashboard | {{app}}",
+ "dms": "DMS Export | {{app}}",
+ "export-logs": "Export Logs | {{app}}",
+ "imexonline": "ImEX Online",
+ "inventory": "Inventory | {{app}}",
+ "jobs": "Active Jobs | {{app}}",
+ "jobs-admin": "Job {{ro_number}} - Admin | {{app}}",
+ "jobs-all": "All Jobs | {{app}}",
+ "jobs-checklist": "Job Checklist | {{app}}",
+ "jobs-close": "Close Job {{number}} | {{app}}",
+ "jobs-create": "Create a New Job | {{app}}",
+ "jobs-deliver": "Deliver Job | {{app}}",
+ "jobs-intake": "Intake | {{app}}",
+ "jobsavailable": "Available Jobs | {{app}}",
+ "jobsdetail": "Job {{ro_number}} | {{app}}",
+ "jobsdocuments": "Job Documents {{ro_number}} | {{app}}",
+ "manageroot": "Home | {{app}}",
+ "owners": "All Owners | {{app}}",
+ "owners-detail": "{{name}} | {{app}}",
+ "parts-queue": "Parts Queue | {{app}}",
+ "payments-all": "Payments | {{app}}",
+ "phonebook": "Phonebook | {{app}}",
+ "productionboard": "Production Board - Visual | {{app}}",
+ "productionlist": "Production Board - List | {{app}}",
+ "profile": "My Profile | {{app}}",
+ "promanager": "ProManager",
+ "readyjobs": "Ready Jobs | {{app}}",
"resetpassword": "Reset Password",
"resetpasswordvalidate": "Enter New Password",
- "schedule": "Schedule | $t(titles.app)",
- "scoreboard": "Scoreboard | $t(titles.app)",
- "shop": "My Shop | $t(titles.app)",
- "shop-csi": "CSI Responses | $t(titles.app)",
- "shop-templates": "Shop Templates | $t(titles.app)",
- "shop_vendors": "Vendors | $t(titles.app)",
- "techconsole": "Technician Console | $t(titles.app)",
- "techjobclock": "Technician Job Clock | $t(titles.app)",
- "techjoblookup": "Technician Job Lookup | $t(titles.app)",
- "techshiftclock": "Technician Shift Clock | $t(titles.app)",
- "temporarydocs": "Temporary Documents | $t(titles.app)",
- "timetickets": "Time Tickets | $t(titles.app)",
- "ttapprovals": "Time Ticket Approvals | $t(titles.app)",
- "vehicledetail": "Vehicle Details {{vehicle}} | $t(titles.app)",
- "vehicles": "All Vehicles | $t(titles.app)"
+ "romeonline": "Rome Online",
+ "schedule": "Schedule | {{app}}",
+ "scoreboard": "Scoreboard | {{app}}",
+ "shop": "My Shop | {{app}}",
+ "shop-csi": "CSI Responses | {{app}}",
+ "shop-templates": "Shop Templates | {{app}}",
+ "shop_vendors": "Vendors | {{app}}",
+ "techconsole": "Technician Console | {{app}}",
+ "techjobclock": "Technician Job Clock | {{app}}",
+ "techjoblookup": "Technician Job Lookup | {{app}}",
+ "techshiftclock": "Technician Shift Clock | {{app}}",
+ "temporarydocs": "Temporary Documents | {{app}}",
+ "timetickets": "Time Tickets | {{app}}",
+ "ttapprovals": "Time Ticket Approvals | {{app}}",
+ "vehicledetail": "Vehicle Details {{vehicle}} | {{app}}",
+ "vehicles": "All Vehicles | {{app}}"
},
"tt_approvals": {
"actions": {
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index 9f631f83a..4ab898459 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -760,7 +760,7 @@
"driverinformation": "",
"findcontract": "",
"findermodal": "",
- "insuranceexpired": "",
+ "insuranceexpired": "",
"noteconvertedfrom": "",
"populatefromjob": "",
"rates": "",
@@ -881,7 +881,7 @@
"labels": {
"bodyhrs": "",
"dollarsinproduction": "",
- "phone": "",
+ "phone": "",
"prodhrs": "",
"refhrs": ""
},
@@ -897,9 +897,9 @@
"productiondollars": "",
"productionhours": "",
"projectedmonthlysales": "",
- "scheduledindate": "",
+ "scheduledindate": "",
"scheduledintoday": "",
- "scheduledoutdate": "",
+ "scheduledoutdate": "",
"scheduledouttoday": ""
}
},
@@ -1147,7 +1147,7 @@
"item": "",
"label": "",
"loading": "Cargando...",
- "loadingapp": "Cargando $t(titles.app)",
+ "loadingapp": "Cargando {{app}}",
"loadingshop": "Cargando datos de la tienda ...",
"loggingin": "Iniciando sesión ...",
"markedexported": "",
@@ -1823,7 +1823,7 @@
"ca_gst_all_if_null": "",
"calc_repair_days": "",
"calc_repair_days_tt": "",
- "calc_scheuled_completion": "",
+ "calc_scheuled_completion": "",
"cards": {
"customer": "Información al cliente",
"damage": "Área de Daño",
@@ -1991,7 +1991,7 @@
"total_sales_tax": "",
"totals": "",
"unvoidnote": "",
- "update_scheduled_completion": "",
+ "update_scheduled_completion": "",
"vehicle_info": "Vehículo",
"vehicleassociation": "",
"viewallocations": "",
@@ -2701,16 +2701,16 @@
"generate": ""
},
"labels": {
- "advanced_filters": "",
- "advanced_filters_show": "",
- "advanced_filters_hide": "",
- "advanced_filters_filters": "",
- "advanced_filters_sorters": "",
- "advanced_filters_filter_field": "",
- "advanced_filters_sorter_field": "",
- "advanced_filters_sorter_direction": "",
- "advanced_filters_filter_operator": "",
- "advanced_filters_filter_value": "",
+ "advanced_filters": "",
+ "advanced_filters_filter_field": "",
+ "advanced_filters_filter_operator": "",
+ "advanced_filters_filter_value": "",
+ "advanced_filters_filters": "",
+ "advanced_filters_hide": "",
+ "advanced_filters_show": "",
+ "advanced_filters_sorter_direction": "",
+ "advanced_filters_sorter_field": "",
+ "advanced_filters_sorters": "",
"dates": "",
"employee": "",
"filterson": "",
@@ -3083,8 +3083,9 @@
"dashboard": "",
"dms": "",
"export-logs": "",
+ "imexonline": "",
"inventory": "",
- "jobs": "Todos los trabajos | $t(titles.app)",
+ "jobs": "Todos los trabajos | {{app}}",
"jobs-admin": "",
"jobs-all": "",
"jobs-checklist": "",
@@ -3092,36 +3093,38 @@
"jobs-create": "",
"jobs-deliver": "",
"jobs-intake": "",
- "jobsavailable": "Empleos disponibles | $t(titles.app)",
- "jobsdetail": "Trabajo {{ro_number}} | $t(titles.app)",
- "jobsdocuments": "Documentos de trabajo {{ro_number}} | $t(titles.app)",
- "manageroot": "Casa | $t(titles.app)",
- "owners": "Todos los propietarios | $t(titles.app)",
+ "jobsavailable": "Empleos disponibles | {{app}}",
+ "jobsdetail": "Trabajo {{ro_number}} | {{app}}",
+ "jobsdocuments": "Documentos de trabajo {{ro_number}} | {{app}}",
+ "manageroot": "Casa | {{app}}",
+ "owners": "Todos los propietarios | {{app}}",
"owners-detail": "",
"parts-queue": "",
"payments-all": "",
"phonebook": "",
"productionboard": "",
"productionlist": "",
- "profile": "Mi perfil | $t(titles.app)",
+ "profile": "Mi perfil | {{app}}",
+ "promanager": "",
"readyjobs": "",
"resetpassword": "",
"resetpasswordvalidate": "",
- "schedule": "Horario | $t(titles.app)",
+ "romeonline": "",
+ "schedule": "Horario | {{app}}",
"scoreboard": "",
- "shop": "Mi tienda | $t(titles.app)",
+ "shop": "Mi tienda | {{app}}",
"shop-csi": "",
"shop-templates": "",
- "shop_vendors": "Vendedores | $t(titles.app)",
- "techconsole": "$t(titles.app)",
- "techjobclock": "$t(titles.app)",
- "techjoblookup": "$t(titles.app)",
- "techshiftclock": "$t(titles.app)",
+ "shop_vendors": "Vendedores | {{app}}",
+ "techconsole": "{{app}}",
+ "techjobclock": "{{app}}",
+ "techjoblookup": "{{app}}",
+ "techshiftclock": "{{app}}",
"temporarydocs": "",
"timetickets": "",
"ttapprovals": "",
- "vehicledetail": "Detalles del vehículo {{vehicle}} | $t(titles.app)",
- "vehicles": "Todos los vehiculos | $t(titles.app)"
+ "vehicledetail": "Detalles del vehículo {{vehicle}} | {{app}}",
+ "vehicles": "Todos los vehiculos | {{app}}"
},
"tt_approvals": {
"actions": {
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index d70ff324f..e14ebe4af 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -760,7 +760,7 @@
"driverinformation": "",
"findcontract": "",
"findermodal": "",
- "insuranceexpired": "",
+ "insuranceexpired": "",
"noteconvertedfrom": "",
"populatefromjob": "",
"rates": "",
@@ -881,7 +881,7 @@
"labels": {
"bodyhrs": "",
"dollarsinproduction": "",
- "phone": "",
+ "phone": "",
"prodhrs": "",
"refhrs": ""
},
@@ -897,9 +897,9 @@
"productiondollars": "",
"productionhours": "",
"projectedmonthlysales": "",
- "scheduledindate": "",
+ "scheduledindate": "",
"scheduledintoday": "",
- "scheduledoutdate": "",
+ "scheduledoutdate": "",
"scheduledouttoday": ""
}
},
@@ -1147,7 +1147,7 @@
"item": "",
"label": "",
"loading": "Chargement...",
- "loadingapp": "Chargement de $t(titles.app)",
+ "loadingapp": "Chargement de {{app}}",
"loadingshop": "Chargement des données de la boutique ...",
"loggingin": "Vous connecter ...",
"markedexported": "",
@@ -1823,7 +1823,7 @@
"ca_gst_all_if_null": "",
"calc_repair_days": "",
"calc_repair_days_tt": "",
- "calc_scheuled_completion": "",
+ "calc_scheuled_completion": "",
"cards": {
"customer": "Informations client",
"damage": "Zone de dommages",
@@ -1991,7 +1991,7 @@
"total_sales_tax": "",
"totals": "",
"unvoidnote": "",
- "update_scheduled_completion": "",
+ "update_scheduled_completion": "",
"vehicle_info": "Véhicule",
"vehicleassociation": "",
"viewallocations": "",
@@ -2701,16 +2701,16 @@
"generate": ""
},
"labels": {
- "advanced_filters": "",
- "advanced_filters_show": "",
- "advanced_filters_hide": "",
- "advanced_filters_filters": "",
- "advanced_filters_sorters": "",
- "advanced_filters_filter_field": "",
- "advanced_filters_sorter_field": "",
- "advanced_filters_sorter_direction": "",
- "advanced_filters_filter_operator": "",
- "advanced_filters_filter_value": "",
+ "advanced_filters": "",
+ "advanced_filters_filter_field": "",
+ "advanced_filters_filter_operator": "",
+ "advanced_filters_filter_value": "",
+ "advanced_filters_filters": "",
+ "advanced_filters_hide": "",
+ "advanced_filters_show": "",
+ "advanced_filters_sorter_direction": "",
+ "advanced_filters_sorter_field": "",
+ "advanced_filters_sorters": "",
"dates": "",
"employee": "",
"filterson": "",
@@ -3083,8 +3083,9 @@
"dashboard": "",
"dms": "",
"export-logs": "",
+ "imexonline": "",
"inventory": "",
- "jobs": "Tous les emplois | $t(titles.app)",
+ "jobs": "Tous les emplois | {{app}}",
"jobs-admin": "",
"jobs-all": "",
"jobs-checklist": "",
@@ -3092,36 +3093,38 @@
"jobs-create": "",
"jobs-deliver": "",
"jobs-intake": "",
- "jobsavailable": "Emplois disponibles | $t(titles.app)",
- "jobsdetail": "Travail {{ro_number}} | $t(titles.app)",
- "jobsdocuments": "Documents de travail {{ro_number}} | $t(titles.app)",
- "manageroot": "Accueil | $t(titles.app)",
- "owners": "Tous les propriétaires | $t(titles.app)",
+ "jobsavailable": "Emplois disponibles | {{app}}",
+ "jobsdetail": "Travail {{ro_number}} | {{app}}",
+ "jobsdocuments": "Documents de travail {{ro_number}} | {{app}}",
+ "manageroot": "Accueil | {{app}}",
+ "owners": "Tous les propriétaires | {{app}}",
"owners-detail": "",
"parts-queue": "",
"payments-all": "",
"phonebook": "",
"productionboard": "",
"productionlist": "",
- "profile": "Mon profil | $t(titles.app)",
+ "profile": "Mon profil | {{app}}",
+ "promanager": "",
"readyjobs": "",
"resetpassword": "",
"resetpasswordvalidate": "",
- "schedule": "Horaire | $t(titles.app)",
+ "romeonline": "",
+ "schedule": "Horaire | {{app}}",
"scoreboard": "",
- "shop": "Mon magasin | $t(titles.app)",
+ "shop": "Mon magasin | {{app}}",
"shop-csi": "",
"shop-templates": "",
- "shop_vendors": "Vendeurs | $t(titles.app)",
- "techconsole": "$t(titles.app)",
- "techjobclock": "$t(titles.app)",
- "techjoblookup": "$t(titles.app)",
- "techshiftclock": "$t(titles.app)",
+ "shop_vendors": "Vendeurs | {{app}}",
+ "techconsole": "{{app}}",
+ "techjobclock": "{{app}}",
+ "techjoblookup": "{{app}}",
+ "techshiftclock": "{{app}}",
"temporarydocs": "",
"timetickets": "",
"ttapprovals": "",
- "vehicledetail": "Détails du véhicule {{vehicle} | $t(titles.app)",
- "vehicles": "Tous les véhicules | $t(titles.app)"
+ "vehicledetail": "Détails du véhicule {{vehicle} | {{app}}",
+ "vehicles": "Tous les véhicules | {{app}}"
},
"tt_approvals": {
"actions": {
diff --git a/client/src/translations/i18n.js b/client/src/translations/i18n.js
index 3c349cc29..7e3b8b941 100644
--- a/client/src/translations/i18n.js
+++ b/client/src/translations/i18n.js
@@ -1,16 +1,16 @@
-import i18n from "i18next";
-import LanguageDetector from "i18next-browser-languagedetector";
-import {initReactI18next} from "react-i18next";
-import en_Translation from "./en_us/common.json";
-import es_Translation from "./es/common.json";
-import fr_Translation from "./fr/common.json";
+import i18n from 'i18next';
+import LanguageDetector from 'i18next-browser-languagedetector';
+import { initReactI18next } from 'react-i18next';
+import en_Translation from './en_us/common.json';
+import es_Translation from './es/common.json';
+import fr_Translation from './fr/common.json';
// the translations
// (tip move them in a JSON file and import them)
const resources = {
- "en-US": en_Translation,
- "fr-CA": fr_Translation,
- "es-MX": es_Translation,
+ 'en-US': en_Translation,
+ 'fr-CA': fr_Translation,
+ 'es-MX': es_Translation,
};
i18n
.use(initReactI18next)
@@ -19,14 +19,13 @@ i18n
resources,
//lng: "en",
detection: {},
- fallbackLng: "en-US",
+ fallbackLng: 'en-US',
debug: import.meta.env.PROD ? false : true,
-
- //keySeparator: false, // we do not use keys in form messages.welcome
-
- interpolation: {
- escapeValue: false, // react already safes from xss
- },
- });
+ //keySeparator: false, // we do not use keys in form messages.welcome
+ interpolation: {
+ escapeValue: false, // react already safes from xss
+ skipOnVariables: false,
+ },
+ });
export default i18n;
diff --git a/client/src/utils/RegisterSw.js b/client/src/utils/RegisterSw.js
index bd60d1401..2d18ec170 100644
--- a/client/src/utils/RegisterSw.js
+++ b/client/src/utils/RegisterSw.js
@@ -43,8 +43,8 @@ const onServiceWorkerUpdate = (registration) => {
notification.open({
icon: ,
- message: i18n.t("general.messages.newversiontitle"),
- description: i18n.t("general.messages.newversionmessage"),
+ message: i18n.t("general.messages.newversiontitle",{app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})}),
+ description: i18n.t("general.messages.newversionmessage", {app: InstanceRenderManager({imex:'$t(titles.imexonline)', rome: '$t(titles.romeonline)', promanager: '$t(titles.promanager)'})}),
duration: 0,
btn,
key: "updateavailable",