From 953443381648b516cea9f24329cdeb9c53a9faff Mon Sep 17 00:00:00 2001 From: Zak Burke Date: Wed, 27 Nov 2024 11:43:58 -0500 Subject: [PATCH 1/2] STCOR-906 consume react-query QueryClient in (#1567) Correctly pass all three required arguments from `` to `loginServices::logout()`: gateway URL, redux store, react-query QueryClient. The third was missing, resulting in an NPE during `logout()` that caused flow to skip to the `finally` clause, skipping the code that cleared localforage. Sometimes localforage appears to get cleared anyway, but sometimes not, in which case the session may fail to terminate even when the fixed-length session timer reaches 00:00. This is one of those "How did this ever work?!? And how did we not notice?!?" situations. Refs [STCOR-906](https://folio-org.atlassian.net/browse/STCOR-906) --- CHANGELOG.md | 1 + src/components/Logout/Logout.js | 4 +++- src/components/Logout/Logout.test.js | 1 + src/loginServices.js | 4 +++- src/loginServices.test.js | 25 +++++++++++++++++++++++++ 5 files changed, 33 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2f461b8a..c8de23b99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ * Provide `` and `stripes.hasAnyPermission()`. Refs STCOR-910. * Use the `users-keycloak/_self` endpoint conditionally when the `users-keycloak` interface is present; otherwise, use `bl-users/_self` within `useUserTenantPermissions`. Refs STCOR-905. * Don't override initial discovery and okapi data in test mocks. Refs STCOR-913. +* `` must consume `QueryClient` in order to supply it to `loginServices::logout()`. Refs STCOR-907. ## [10.2.0](https://github.com/folio-org/stripes-core/tree/v10.2.0) (2024-10-11) [Full Changelog](https://github.com/folio-org/stripes-core/compare/v10.1.1...v10.2.0) diff --git a/src/components/Logout/Logout.js b/src/components/Logout/Logout.js index 1f3650ca8..3ba33c401 100644 --- a/src/components/Logout/Logout.js +++ b/src/components/Logout/Logout.js @@ -1,6 +1,7 @@ import { useEffect, useState } from 'react'; import { useLocation } from 'react-router'; import { FormattedMessage } from 'react-intl'; +import { useQueryClient } from 'react-query'; import { branding } from 'stripes-config'; import { @@ -35,6 +36,7 @@ const Logout = () => { const stripes = useStripes(); const [didLogout, setDidLogout] = useState(false); const location = useLocation(); + const queryClient = useQueryClient(); const messageId = location.pathName === '/logout-timeout' ? 'stripes-core.rtr.idleSession.sessionExpiredSoSad' : 'stripes-core.logoutComplete'; @@ -42,7 +44,7 @@ const Logout = () => { () => { if (stripes.okapi.isAuthenticated) { // returns a promise, which we ignore - logout(stripes.okapi.url, stripes.store) + logout(stripes.okapi.url, stripes.store, queryClient) .then(setDidLogout(true)); } else { setDidLogout(true); diff --git a/src/components/Logout/Logout.test.js b/src/components/Logout/Logout.test.js index f887ee111..ae9ede3b5 100644 --- a/src/components/Logout/Logout.test.js +++ b/src/components/Logout/Logout.test.js @@ -9,6 +9,7 @@ import { getUnauthorizedPathFromSession, logout, setUnauthorizedPathToSession } jest.mock('../OrganizationLogo'); jest.mock('../../StripesContext'); jest.mock('react-router'); +jest.mock('react-query'); jest.mock('../../loginServices', () => ({ ...jest.requireActual('../../loginServices'), diff --git a/src/loginServices.js b/src/loginServices.js index 9216bedb2..132c3f8a0 100644 --- a/src/loginServices.js +++ b/src/loginServices.js @@ -532,7 +532,9 @@ export async function logout(okapiUrl, store, queryClient) { store.dispatch(resetStore()); // clear react-query cache - queryClient.removeQueries(); + if (queryClient) { + queryClient.removeQueries(); + } }) // clear shared storage .then(localforage.removeItem(SESSION_NAME)) diff --git a/src/loginServices.test.js b/src/loginServices.test.js index 16163936c..e05342b5c 100644 --- a/src/loginServices.test.js +++ b/src/loginServices.test.js @@ -564,6 +564,31 @@ describe('logout', () => { expect(global.fetch).not.toHaveBeenCalled(); }); }); + + describe('react-query client', () => { + afterEach(() => { + mockFetchCleanUp(); + }); + + it('calls removeQueries given valid client', async () => { + global.fetch = jest.fn().mockImplementation(() => Promise.resolve()); + const store = { + dispatch: jest.fn(), + }; + const rqc = { + removeQueries: jest.fn(), + }; + + let res; + await logout('', store, rqc) + .then(() => { + res = true; + }); + + expect(res).toBe(true); + expect(rqc.removeQueries).toHaveBeenCalled(); + }); + }); }); describe('getLocale', () => { From 1189bd5d722b3471b2484ce59fbd7eb9af090c53 Mon Sep 17 00:00:00 2001 From: FOLIO Translations Bot <38661258+folio-translations@users.noreply.github.com> Date: Sat, 30 Nov 2024 13:17:54 -0500 Subject: [PATCH 2/2] Lokalise: Translations update (#1569) This pull request was initiated by Lokalise (user Peter Murray) at 2024-11-30 18:54:38 --- translations/stripes-core/ar.json | 4 +++- translations/stripes-core/ber.json | 4 +++- translations/stripes-core/ca.json | 4 +++- translations/stripes-core/cs_CZ.json | 4 +++- translations/stripes-core/da.json | 4 +++- translations/stripes-core/de.json | 6 ++++-- translations/stripes-core/en_GB.json | 4 +++- translations/stripes-core/en_SE.json | 20 +++++++++++--------- translations/stripes-core/en_US.json | 3 +-- translations/stripes-core/es.json | 4 +++- translations/stripes-core/es_419.json | 4 +++- translations/stripes-core/es_ES.json | 4 +++- translations/stripes-core/fr.json | 4 +++- translations/stripes-core/fr_FR.json | 4 +++- translations/stripes-core/he.json | 4 +++- translations/stripes-core/hi_IN.json | 4 +++- translations/stripes-core/hu.json | 4 +++- translations/stripes-core/it_IT.json | 4 +++- translations/stripes-core/ja.json | 4 +++- translations/stripes-core/ko.json | 4 +++- translations/stripes-core/nb.json | 4 +++- translations/stripes-core/nl.json | 4 +++- translations/stripes-core/nn.json | 4 +++- translations/stripes-core/pl.json | 4 +++- translations/stripes-core/pt_BR.json | 4 +++- translations/stripes-core/pt_PT.json | 4 +++- translations/stripes-core/ru.json | 4 +++- translations/stripes-core/sk.json | 4 +++- translations/stripes-core/sv.json | 6 ++++-- translations/stripes-core/ur.json | 4 +++- translations/stripes-core/zh_CN.json | 4 +++- translations/stripes-core/zh_TW.json | 4 +++- 32 files changed, 104 insertions(+), 43 deletions(-) diff --git a/translations/stripes-core/ar.json b/translations/stripes-core/ar.json index 436e7cbb1..a2d510c07 100644 --- a/translations/stripes-core/ar.json +++ b/translations/stripes-core/ar.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/ber.json b/translations/stripes-core/ber.json index 1bfbcd716..29f79a8b6 100644 --- a/translations/stripes-core/ber.json +++ b/translations/stripes-core/ber.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/ca.json b/translations/stripes-core/ca.json index a9e11baed..680f90a92 100644 --- a/translations/stripes-core/ca.json +++ b/translations/stripes-core/ca.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/cs_CZ.json b/translations/stripes-core/cs_CZ.json index db71a933c..e3f75cdcd 100644 --- a/translations/stripes-core/cs_CZ.json +++ b/translations/stripes-core/cs_CZ.json @@ -158,5 +158,7 @@ "tenantChoose": "Vybrat nájemce/knihovnu", "tenantLibrary": "Nájemce/Knihovna", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Vaše relace brzy skončí! Zbývající čas:" + "rtr.fixedLengthSession.timeRemaining": "Vaše relace brzy skončí! Zbývající čas:", + "logoutComplete": "Odhlásili jste se.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/da.json b/translations/stripes-core/da.json index b15ff3a45..21ebe2f55 100644 --- a/translations/stripes-core/da.json +++ b/translations/stripes-core/da.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/de.json b/translations/stripes-core/de.json index 4fa2a2bda..e48fc04e8 100644 --- a/translations/stripes-core/de.json +++ b/translations/stripes-core/de.json @@ -88,7 +88,7 @@ "mainnav.topLevelLabel": "Primär", "mainnav.applicationListLabel": "App-Liste", "errors.default.error": "Leider stimmen die Angaben nicht mit unserem Datenbestand überein.", - "errors.username.incorrect": "Dieses FOLIO-Konto kann nicht gefunden werden. Bitte wenden Sie sich an Ihre Folio-Systemadministration.", + "errors.username.incorrect": "Dieses FOLIO-Konto kann nicht gefunden werden. Bitte wenden Sie sich an Ihre FOLIO-Systemadministration.", "errors.password.incorrect": "Anmeldeinformationen stimmen nicht", "errors.user.blocked": "Aus Sicherheitsgründen wurde Ihr Konto gesperrt. Bitte versuchen Sie es erneut oder wenden Sie sich an Ihre FOLIO-Systemadministration.", "errors.password.match.error": "Passwort stimmt nicht überein. Passwort erneut eingeben.", @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/en_GB.json b/translations/stripes-core/en_GB.json index 1bfbcd716..29f79a8b6 100644 --- a/translations/stripes-core/en_GB.json +++ b/translations/stripes-core/en_GB.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/en_SE.json b/translations/stripes-core/en_SE.json index 9f01fdbf4..29f79a8b6 100644 --- a/translations/stripes-core/en_SE.json +++ b/translations/stripes-core/en_SE.json @@ -1,13 +1,13 @@ { - "front.welcome": "Välkommen till FOLIO!", - "front.home": "Start", + "front.welcome": "Welcome, the Future Of Libraries Is OPEN!", + "front.home": "Home", "front.about": "Software versions", - "button.new": "+ Ny", - "button.new_tooltip": "Lägg till {entry}", - "button.edit": "Redigera", - "button.delete": "Radera", - "button.deleteEntry": "Radera {entry}", - "button.saveAndClose": "Spara och stäng", + "button.new": "+ New", + "button.new_tooltip": "Add {entry}", + "button.edit": "Edit", + "button.delete": "Delete", + "button.deleteEntry": "Delete {entry}", + "button.saveAndClose": "Save and close", "button.cancel": "Cancel", "label.confirmDeleteEntry": "{name} will be removed", "label.editEntry": "Edit {entry}", @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/en_US.json b/translations/stripes-core/en_US.json index f49fa0f0f..29f79a8b6 100644 --- a/translations/stripes-core/en_US.json +++ b/translations/stripes-core/en_US.json @@ -161,5 +161,4 @@ "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", "logoutComplete": "You have logged out.", "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." - -} +} \ No newline at end of file diff --git a/translations/stripes-core/es.json b/translations/stripes-core/es.json index 70ada74ba..3fe8201b7 100644 --- a/translations/stripes-core/es.json +++ b/translations/stripes-core/es.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/es_419.json b/translations/stripes-core/es_419.json index 70ada74ba..3fe8201b7 100644 --- a/translations/stripes-core/es_419.json +++ b/translations/stripes-core/es_419.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/es_ES.json b/translations/stripes-core/es_ES.json index 70ada74ba..3fe8201b7 100644 --- a/translations/stripes-core/es_ES.json +++ b/translations/stripes-core/es_ES.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/fr.json b/translations/stripes-core/fr.json index b8c7fffe2..9ba2098e0 100644 --- a/translations/stripes-core/fr.json +++ b/translations/stripes-core/fr.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/fr_FR.json b/translations/stripes-core/fr_FR.json index cc7e91f0c..44d76e700 100644 --- a/translations/stripes-core/fr_FR.json +++ b/translations/stripes-core/fr_FR.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "Vous vous êtes déconnecté.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/he.json b/translations/stripes-core/he.json index f919a66cc..da72e1cc1 100644 --- a/translations/stripes-core/he.json +++ b/translations/stripes-core/he.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/hi_IN.json b/translations/stripes-core/hi_IN.json index 1bfbcd716..29f79a8b6 100644 --- a/translations/stripes-core/hi_IN.json +++ b/translations/stripes-core/hi_IN.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/hu.json b/translations/stripes-core/hu.json index bd489afe1..c5f86493e 100644 --- a/translations/stripes-core/hu.json +++ b/translations/stripes-core/hu.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/it_IT.json b/translations/stripes-core/it_IT.json index 978bfb128..1296a2547 100644 --- a/translations/stripes-core/it_IT.json +++ b/translations/stripes-core/it_IT.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/ja.json b/translations/stripes-core/ja.json index fd719b594..62674c9f5 100644 --- a/translations/stripes-core/ja.json +++ b/translations/stripes-core/ja.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "セッションはまもなく終了します。残時間:" + "rtr.fixedLengthSession.timeRemaining": "セッションはまもなく終了します。残時間:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/ko.json b/translations/stripes-core/ko.json index 4e8854b2a..5de86ce04 100644 --- a/translations/stripes-core/ko.json +++ b/translations/stripes-core/ko.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/nb.json b/translations/stripes-core/nb.json index 1bfbcd716..29f79a8b6 100644 --- a/translations/stripes-core/nb.json +++ b/translations/stripes-core/nb.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/nl.json b/translations/stripes-core/nl.json index f86713ef1..b3bae7e86 100644 --- a/translations/stripes-core/nl.json +++ b/translations/stripes-core/nl.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/nn.json b/translations/stripes-core/nn.json index 1bfbcd716..29f79a8b6 100644 --- a/translations/stripes-core/nn.json +++ b/translations/stripes-core/nn.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/pl.json b/translations/stripes-core/pl.json index 8584cf659..e5a3c8576 100644 --- a/translations/stripes-core/pl.json +++ b/translations/stripes-core/pl.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/pt_BR.json b/translations/stripes-core/pt_BR.json index a19720ce3..5eae408a5 100644 --- a/translations/stripes-core/pt_BR.json +++ b/translations/stripes-core/pt_BR.json @@ -158,5 +158,7 @@ "tenantChoose": "Selecione seu locatário/biblioteca", "tenantLibrary": "Locatário/Biblioteca", "errors.saml.missingToken": "Nenhum parâmetro de consulta code .", - "rtr.fixedLengthSession.timeRemaining": "Sua sessão terminará em breve! Tempo restante:" + "rtr.fixedLengthSession.timeRemaining": "Sua sessão terminará em breve! Tempo restante:", + "logoutComplete": "Você efetuou logout.", + "errors.oidc": "Erro: o servidor está proibido, inacessível ou indisponível." } \ No newline at end of file diff --git a/translations/stripes-core/pt_PT.json b/translations/stripes-core/pt_PT.json index bcd753d21..2550529ce 100644 --- a/translations/stripes-core/pt_PT.json +++ b/translations/stripes-core/pt_PT.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/ru.json b/translations/stripes-core/ru.json index b14c1bf7a..8b98ba32a 100644 --- a/translations/stripes-core/ru.json +++ b/translations/stripes-core/ru.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/sk.json b/translations/stripes-core/sk.json index 8ab8d4d50..d7c56f250 100644 --- a/translations/stripes-core/sk.json +++ b/translations/stripes-core/sk.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/sv.json b/translations/stripes-core/sv.json index 996b8361a..95e8540c9 100644 --- a/translations/stripes-core/sv.json +++ b/translations/stripes-core/sv.json @@ -11,7 +11,7 @@ "button.cancel": "Ångra", "label.confirmDeleteEntry": "{name} will be removed", "label.editEntry": "Redigera {entry}", - "label.createEntry": "Create {entry}", + "label.createEntry": "Skapa {entry}", "label.missingRequiredField": "Please fill this in to continue", "label.okay": "Okej", "successfullyDeleted": "The {entry} {name} was successfully deleted.", @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/ur.json b/translations/stripes-core/ur.json index 1bfbcd716..29f79a8b6 100644 --- a/translations/stripes-core/ur.json +++ b/translations/stripes-core/ur.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/zh_CN.json b/translations/stripes-core/zh_CN.json index 576f2bb99..ec6d3354b 100644 --- a/translations/stripes-core/zh_CN.json +++ b/translations/stripes-core/zh_CN.json @@ -158,5 +158,7 @@ "tenantChoose": "选择租户/图书馆", "tenantLibrary": "租户/图书馆", "errors.saml.missingToken": "无 代码查询参数。", - "rtr.fixedLengthSession.timeRemaining": "您的会话即将结束!剩余时间:" + "rtr.fixedLengthSession.timeRemaining": "您的会话即将结束!剩余时间:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file diff --git a/translations/stripes-core/zh_TW.json b/translations/stripes-core/zh_TW.json index 4b2ed6887..c53dddb71 100644 --- a/translations/stripes-core/zh_TW.json +++ b/translations/stripes-core/zh_TW.json @@ -158,5 +158,7 @@ "tenantChoose": "Select your tenant/library", "tenantLibrary": "Tenant/Library", "errors.saml.missingToken": "No code query parameter.", - "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:" + "rtr.fixedLengthSession.timeRemaining": "Your session will end soon! Time remaining:", + "logoutComplete": "You have logged out.", + "errors.oidc": "Error: server is forbidden, unreachable, or unavailable." } \ No newline at end of file