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()
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)
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) {