X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fclient.ts;h=385757fa6bb45729433b142458f918e9a815589e;hb=11fa7d392a21fe73dd235375b89c554e9b5ba18c;hp=4b37b5fa6ca9a1534127649563273c0eff6b9da9;hpb=f8b447538643759217bb25559ac334378ce5ca82;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/client.ts b/server/controllers/client.ts index 4b37b5fa6..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,12 +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) {