123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- const fs = require('fs')
- const path = require('path')
- const axios = require('axios')
- const locales = ['zh', 'en', 'kr', 'fr', 'fr', 'ja']
- const fetchLocale = async locale => {
- return axios.get(`https://4dkk.4dage.com/v4/www/locales/${locale}.json?${Date.now()}`)
- }
- const merge = (source, resource, target) => {
- for (let key in source) {
- if (typeof source[key] === 'string') {
- target[key] = resource[key] == void 0 ? source[key] : resource[key]
- } else {
- target[key] = {}
- resource[key] = resource[key] || {}
- merge(source[key], resource[key], target[key])
- }
- }
- }
- const combine = (source, resource, target) => {
- merge(source, resource, target)
- }
- function exec() {
- locales.forEach(locale => {
- fetchLocale(locale)
- .then(response => {
- try {
- fs.readFile(path.join(__dirname, '..', 'src', 'locales', locale + '.json'), (err, data) => {
- if (err) {
- return
- }
- var target = {}
- var source = JSON.parse(data.toString())
- var resource = response.data
- combine(source, resource, target)
- fs.writeFile(path.join(__dirname, '..', 'src', 'locales', locale + '.json'), JSON.stringify(target, null, 4), () => {})
- if (locale == 'zh') {
- fs.writeFile(path.join(__dirname, '..', 'src', 'views', 'locales', locale + '.json'), JSON.stringify(target, null, 4), () => {})
- }
- })
- } catch (error) {
- console.log(error)
- }
- })
- .catch(err => {
- if (locale == 'zh') {
- fs.readFile(path.join(__dirname, '..', 'src', 'locales', locale + '.json'), (err, data) => {
- if (err) {
- return
- }
- fs.writeFile(path.join(__dirname, '..', 'src', 'views', 'locales', locale + '.json'), data.toString(), () => {})
- })
- }
- })
- })
- }
- exec()
|