Skip to content
This repository has been archived by the owner on Jan 1, 2024. It is now read-only.

Commit

Permalink
fix(server): make i18n less complex
Browse files Browse the repository at this point in the history
fix(server): make i18n less complex
  • Loading branch information
Metnew committed Feb 18, 2018
1 parent 989ec69 commit 8cbd0f4
Showing 1 changed file with 9 additions and 31 deletions.
40 changes: 9 additions & 31 deletions src/server/i18n/index.js
Original file line number Diff line number Diff line change
@@ -1,46 +1,24 @@
// @flow
import {readFileSync} from 'fs' // readFile
import path from 'path'
import {sync as globSync} from 'glob'
import chokidar from 'chokidar'
import enLocaleData from 'react-intl/locale-data/en'
import ruLocaleData from 'react-intl/locale-data/ru'
import type {i18nConfigObject} from 'types'

const getTranslations = () => {
return globSync('locals/*.json')
.map((filename: string) => [
path.basename(filename, '.json'),
readFileSync(filename, 'utf8')
])
.map(([locale, file]) => [locale, JSON.parse(file)])
.reduce((acc, [locale, messages]) => {
acc[locale] = messages
return acc
}, {})
}

let translations = getTranslations()
// NOTE: re-update `locals` if they were changed (in development)
if (process.env.NODE_ENV === 'development') {
const watcher = chokidar.watch('locals/*.json')

watcher.on('all', () => {
translations = getTranslations()
})
}
import ru from 'static/locals/ru'
import en from 'static/locals/en'

export const defaultLanguage = 'en'
export const supportedLanguages = ['en', 'ru']

export default (lang: string = defaultLanguage): i18nConfigObject => {
const summaryLocaleData = {
const translations = {
en, ru
}

export default (lang: string = defaultLanguage) => {
const localeData = {
en: enLocaleData,
ru: ruLocaleData
}
return {
lang,
localeData: summaryLocaleData[lang],
localeData: localeData[lang],
locale: lang,
messages: translations[lang]
}
Expand Down

0 comments on commit 8cbd0f4

Please sign in to comment.