javascript - js 文件中的 Vue-i18n 翻译而不是 json
问题描述
如何使用.js
带有翻译的文件而不是.json
?
改变:
const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.json$/i)
至
const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.js$/i)
不起作用。任何想法?
解决方案
我找到了一个答案,它可能对将来的某些人有所帮助。从 vue-cli 3 编辑根目录 i18n.js 文件,函数 loadLocalMessages:
function loadLocaleMessages () {
const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.js$/i)
const messages = {}
locales.keys().forEach(key => {
const matched = key.match(/([A-Za-z0-9-_]+)\./i)
if (matched && matched.length > 1) {
const locale = matched[1]
messages[locale] = locales(key).default
}
})
return messages
}
和locales/en.js
const translations = { /* translations here */ }
export default translations
推荐阅读
- javascript - 使用 Fetch API 将数据发送到 PHP 服务器(首选 POST 方法和 JSON)
- php - Heroku 显示一些图像,而不是全部
- python - 如何打印列表中元素数量最多的键?
- c++ - 在 Visual Studio 2017 上创建 C++ 空项目
- python - Python 请求发送空数据
- java - 我们如何实现具有支持低延迟和一致性的大量并发内存更新的可扩展计算网格
- html - 如何在小窗口、平板电脑和智能手机中可视化图像时居中
- r - Flexdashboard/R Markdown 中的布局
- javascript - 如何将图像链接保存到列表中?
- c - Xcode 编辑器不包含 stdio.h