From cfbffb3b96a67aa7eda4691874c44c903d1e22ad Mon Sep 17 00:00:00 2001 From: SpedNSFW <68614336+SpedNSFW@users.noreply.github.com> Date: Tue, 27 Oct 2020 09:35:25 +1100 Subject: [PATCH] Add basic i18n implementation (#879) To be used as a reference point for any future i18n additions for either new languages or more translatable content. --- ui/v2.5/src/App.tsx | 4 ++-- .../src/components/Performers/PerformerCard.tsx | 8 ++++++-- ui/v2.5/src/locale/en-GB.json | 16 ++++++++++++++++ ui/v2.5/src/locale/{en.json => en-US.json} | 1 + ui/v2.5/src/locale/index.ts | 6 ++++-- 5 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 ui/v2.5/src/locale/en-GB.json rename ui/v2.5/src/locale/{en.json => en-US.json} (92%) diff --git a/ui/v2.5/src/App.tsx b/ui/v2.5/src/App.tsx index 3c0edf38e..138ec56f9 100755 --- a/ui/v2.5/src/App.tsx +++ b/ui/v2.5/src/App.tsx @@ -40,8 +40,8 @@ const intlFormats = { export const App: React.FC = () => { const config = useConfiguration(); - const language = config.data?.configuration?.interface?.language ?? "en-US"; - const messageLanguage = language.slice(0, 2); + const language = config.data?.configuration?.interface?.language ?? "en-GB"; + const messageLanguage = language.replace(/-/, ""); // eslint-disable-next-line @typescript-eslint/no-explicit-any const messages = flattenMessages((locales as any)[messageLanguage]); diff --git a/ui/v2.5/src/components/Performers/PerformerCard.tsx b/ui/v2.5/src/components/Performers/PerformerCard.tsx index fd21b0e92..8ff264583 100644 --- a/ui/v2.5/src/components/Performers/PerformerCard.tsx +++ b/ui/v2.5/src/components/Performers/PerformerCard.tsx @@ -1,7 +1,7 @@ import React from "react"; import { Card } from "react-bootstrap"; import { Link } from "react-router-dom"; -import { FormattedNumber, FormattedPlural } from "react-intl"; +import { FormattedNumber, FormattedPlural, FormattedMessage } from "react-intl"; import * as GQL from "src/core/generated-graphql"; import { NavUtils, TextUtils } from "src/utils"; import { CountryFlag } from "src/components/Shared"; @@ -22,7 +22,11 @@ export const PerformerCard: React.FC = ({ if (performer.favorite === false) { return; } - return
FAVORITE
; + return ( +
+ +
+ ); } return ( diff --git a/ui/v2.5/src/locale/en-GB.json b/ui/v2.5/src/locale/en-GB.json new file mode 100644 index 000000000..2e2c7e7ae --- /dev/null +++ b/ui/v2.5/src/locale/en-GB.json @@ -0,0 +1,16 @@ +{ + "developmentVersion": "Development Version", + "images": "Images", + "galleries": "Galleries", + "library-size": "Library size", + "markers": "Markers", + "movies": "Movies", + "new": "New", + "performers": "Performers", + "scenes": "Scenes", + "studios": "Studios", + "tags": "Tags", + "up-dir": "Up a directory", + "favourite": "FAVOURITE", + "sceneTagger": "Scene Tagger" +} diff --git a/ui/v2.5/src/locale/en.json b/ui/v2.5/src/locale/en-US.json similarity index 92% rename from ui/v2.5/src/locale/en.json rename to ui/v2.5/src/locale/en-US.json index ac6e34be9..a1a9e2742 100644 --- a/ui/v2.5/src/locale/en.json +++ b/ui/v2.5/src/locale/en-US.json @@ -11,5 +11,6 @@ "studios": "Studios", "tags": "Tags", "up-dir": "Up a directory", + "favourite": "FAVORITE", "sceneTagger": "Scene Tagger" } diff --git a/ui/v2.5/src/locale/index.ts b/ui/v2.5/src/locale/index.ts index 96dee0bbd..401bfffb0 100644 --- a/ui/v2.5/src/locale/index.ts +++ b/ui/v2.5/src/locale/index.ts @@ -1,5 +1,7 @@ -import en from "./en.json"; +import enGB from "./en-GB.json"; +import enUS from "./en-US.json"; export default { - en, + enGB, + enUS, };