feat: add server default locale setting (#1536)

* feat: add server default locale setting

* fix: do not modify defaultLocale property of IntlProvider
This commit is contained in:
TheCatLady
2021-05-03 09:11:28 -04:00
committed by GitHub
parent 4fd452dd18
commit f256a444c5
14 changed files with 94 additions and 44 deletions

View File

@@ -119,7 +119,7 @@ const CoreApp: Omit<NextAppComponentType, 'origGetInitialProps'> = ({
<InteractionProvider>
<ToastProvider components={{ Toast, ToastContainer }}>
<Head>
<title>Overseerr</title>
<title>{currentSettings.applicationTitle}</title>
<meta
name="viewport"
content="initial-scale=1, viewport-fit=cover, width=device-width"
@@ -156,6 +156,7 @@ CoreApp.getInitialProps = async (initialProps) => {
cacheImages: false,
vapidPublic: '',
enablePushRegistration: false,
locale: 'en',
};
if (ctx.res) {
@@ -209,7 +210,9 @@ CoreApp.getInitialProps = async (initialProps) => {
initialProps
);
const locale = user?.settings?.locale ?? 'en';
const locale = user?.settings?.locale
? user.settings.locale
: currentSettings.locale;
const messages = await loadLocaleData(locale as AvailableLocales);

View File

@@ -1,8 +1,7 @@
import React from 'react';
import { GetServerSideProps, NextPage } from 'next';
import type { Collection } from '../../../../server/models/Collection';
import axios from 'axios';
import { parseCookies } from 'nookies';
import { GetServerSideProps, NextPage } from 'next';
import React from 'react';
import type { Collection } from '../../../../server/models/Collection';
import CollectionDetails from '../../../components/CollectionDetails';
interface CollectionPageProps {
@@ -16,11 +15,10 @@ const CollectionPage: NextPage<CollectionPageProps> = ({ collection }) => {
export const getServerSideProps: GetServerSideProps<CollectionPageProps> = async (
ctx
) => {
const cookies = parseCookies(ctx);
const response = await axios.get<Collection>(
`http://localhost:${process.env.PORT || 5055}/api/v1/collection/${
ctx.query.collectionId
}${cookies.locale ? `?language=${cookies.locale}` : ''}`,
}`,
{
headers: ctx.req?.headers?.cookie
? { cookie: ctx.req.headers.cookie }

View File

@@ -1,9 +1,8 @@
import React from 'react';
import axios from 'axios';
import { NextPage } from 'next';
import React from 'react';
import type { MovieDetails as MovieDetailsType } from '../../../../server/models/Movie';
import MovieDetails from '../../../components/MovieDetails';
import axios from 'axios';
import { parseCookies } from 'nookies';
interface MoviePageProps {
movie?: MovieDetailsType;
@@ -15,11 +14,10 @@ const MoviePage: NextPage<MoviePageProps> = ({ movie }) => {
MoviePage.getInitialProps = async (ctx) => {
if (ctx.req) {
const cookies = parseCookies(ctx);
const response = await axios.get<MovieDetailsType>(
`http://localhost:${process.env.PORT || 5055}/api/v1/movie/${
ctx.query.movieId
}${cookies.locale ? `?language=${cookies.locale}` : ''}`,
}`,
{
headers: ctx.req?.headers?.cookie
? { cookie: ctx.req.headers.cookie }

View File

@@ -1,9 +1,8 @@
import React from 'react';
import { NextPage } from 'next';
import axios from 'axios';
import { parseCookies } from 'nookies';
import TvDetails from '../../../components/TvDetails';
import { NextPage } from 'next';
import React from 'react';
import type { TvDetails as TvDetailsType } from '../../../../server/models/Tv';
import TvDetails from '../../../components/TvDetails';
interface TvPageProps {
tv?: TvDetailsType;
@@ -15,11 +14,10 @@ const TvPage: NextPage<TvPageProps> = ({ tv }) => {
TvPage.getInitialProps = async (ctx) => {
if (ctx.req) {
const cookies = parseCookies(ctx);
const response = await axios.get<TvDetailsType>(
`http://localhost:${process.env.PORT || 5055}/api/v1/tv/${
ctx.query.tvId
}${cookies.locale ? `?language=${cookies.locale}` : ''}`,
}`,
{
headers: ctx.req?.headers?.cookie
? { cookie: ctx.req.headers.cookie }