X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fclient.ts;h=385757fa6bb45729433b142458f918e9a815589e;hb=23687332e6d7972c6a0eee30ce9056e45dec022b;hp=a29b51c51d57a4b8d9acf45387aab3b2b25312a6;hpb=989e526abf0c0dd7958deb630df009608561bb67;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/client.ts b/server/controllers/client.ts index a29b51c51..385757fa6 100644 --- a/server/controllers/client.ts +++ b/server/controllers/client.ts @@ -3,18 +3,12 @@ import * as express from 'express' import { join } from 'path' import * as validator from 'validator' import { escapeHTML, readFileBufferPromise, root } from '../helpers/core-utils' -import { - ACCEPT_HEADERS, - CONFIG, - EMBED_SIZE, - OPENGRAPH_AND_OEMBED_COMMENT, - STATIC_MAX_AGE, - STATIC_PATHS -} from '../initializers' +import { ACCEPT_HEADERS, CONFIG, EMBED_SIZE, OPENGRAPH_AND_OEMBED_COMMENT, STATIC_MAX_AGE, STATIC_PATHS } from '../initializers' import { asyncMiddleware } from '../middlewares' import { VideoModel } from '../models/video/video' import { VideoPrivacy } from '../../shared/models/videos' -import { I18N_LOCALES, is18nLocale, getDefaultLocale } from '../../shared/models' +import { buildFileLocale, getCompleteLocale, getDefaultLocale, is18nLocale } from '../../shared/models' +import { LOCALE_FILES } from '../../shared/models/i18n/i18n' const clientsRouter = express.Router() @@ -47,6 +41,19 @@ for (const staticClientFile of staticClientFiles) { clientsRouter.use('/client', express.static(distPath, { maxAge: STATIC_MAX_AGE })) clientsRouter.use('/client/assets/images', express.static(assetsImagesPath, { maxAge: STATIC_MAX_AGE })) +clientsRouter.use('/client/locales/:locale/:file.json', function (req, res) { + const locale = req.params.locale + const file = req.params.file + + if (is18nLocale(locale) && LOCALE_FILES.indexOf(file) !== -1) { + const completeLocale = getCompleteLocale(locale) + const completeFileLocale = buildFileLocale(completeLocale) + return res.sendFile(join(__dirname, `../../../client/dist/locale/${file}_${completeFileLocale}.json`)) + } + + return res.sendStatus(404) +}) + // 404 for static files not found clientsRouter.use('/client/*', (req: express.Request, res: express.Response, next: express.NextFunction) => { res.sendStatus(404) @@ -77,10 +84,12 @@ function getIndexPath (req: express.Request, paramLang?: string) { if (paramLang && is18nLocale(paramLang)) { lang = paramLang } else { - lang = req.acceptsLanguages(Object.keys(I18N_LOCALES)) || getDefaultLocale() + // lang = req.acceptsLanguages(POSSIBLE_LOCALES) || getDefaultLocale() + // Disable auto language for now + lang = getDefaultLocale() } - return join(__dirname, '../../../client/dist/' + lang + '/index.html') + return join(__dirname, '../../../client/dist/' + buildFileLocale(lang) + '/index.html') } function addOpenGraphAndOEmbedTags (htmlStringPage: string, video: VideoModel) {