update init-command
This commit is contained in:
parent
fe8afcaff6
commit
5bc00d6e37
22
package.json
22
package.json
@ -14,28 +14,28 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.17.8",
|
||||
"@babel/plugin-transform-runtime": "^7.17.0",
|
||||
"@babel/preset-env": "^7.16.11",
|
||||
"@babel/core": "^7.18.10",
|
||||
"@babel/plugin-transform-runtime": "^7.18.10",
|
||||
"@babel/preset-env": "^7.18.10",
|
||||
"@rollup/plugin-babel": "^5.3.1",
|
||||
"@rollup/plugin-commonjs": "^21.0.2",
|
||||
"@vuepress/client": "^2.0.0-beta.49",
|
||||
"@rollup/plugin-commonjs": "^21.1.0",
|
||||
"@vuepress/client": "2.0.0-beta.49",
|
||||
"autopub": "^1.0.2",
|
||||
"commander": "^9.0.0",
|
||||
"commander": "^9.4.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"dayjs": "^1.11.0",
|
||||
"dayjs": "^1.11.4",
|
||||
"deepmerge": "^4.2.2",
|
||||
"dumi": "^1.1.47",
|
||||
"enquirer": "^2.3.6",
|
||||
"fast-glob": "^3.2.11",
|
||||
"fs-extra": "^10.1.0",
|
||||
"gulp": "^4.0.2",
|
||||
"inquirer": "^8.2.2",
|
||||
"inquirer": "^8.2.4",
|
||||
"jest": "^27.5.1",
|
||||
"logsets": "^1.0.20",
|
||||
"pnpm": "^7.8.0",
|
||||
"prettier": "^2.2.1",
|
||||
"rollup": "^2.70.1",
|
||||
"pnpm": "^7.9.0",
|
||||
"prettier": "^2.7.1",
|
||||
"rollup": "^2.77.2",
|
||||
"rollup-plugin-clear": "^2.0.7",
|
||||
"semver": "^7.3.7",
|
||||
"shelljs": "^0.8.5",
|
||||
|
1
packages/apps/lib1/index.js
Normal file
1
packages/apps/lib1/index.js
Normal file
@ -0,0 +1 @@
|
||||
console.log(t("这是一个测试"))
|
3
packages/apps/lib1/languages/en.js
Normal file
3
packages/apps/lib1/languages/en.js
Normal file
@ -0,0 +1,3 @@
|
||||
export default {
|
||||
"1": "这是一个测试"
|
||||
}
|
113
packages/apps/lib1/languages/formatters/en.js
Normal file
113
packages/apps/lib1/languages/formatters/en.js
Normal file
@ -0,0 +1,113 @@
|
||||
/**
|
||||
|
||||
格式化器用来对翻译文本内容中的插值变量进行处理
|
||||
|
||||
如何编写格式器请参阅官网!
|
||||
|
||||
*/
|
||||
|
||||
|
||||
// import { Formatter,FlexFormatter } from "./runtime"
|
||||
export default {
|
||||
// global : true, // 简单地设置为true,代表当前所有格式化器均注册到全局,false只在当前scope生效
|
||||
// global : { // 仅将里面的格式化器注册到全局
|
||||
// $config:{... }
|
||||
// xxxx : value => { ... },
|
||||
// xxxx : (value,$config) => { ... },
|
||||
// xxxx : (value,...args,$config) => { ... },
|
||||
// xxxx : Formatter(value,...args,$config) => { ... },
|
||||
// xxxx : FlexFormatter(value,params,$config) => { ... },
|
||||
//}, // 是否注册到全局,false只在当前scope生效
|
||||
// 直接对内置格式化器进行配置,请参阅官网文档
|
||||
// $config:{
|
||||
// datetime : {
|
||||
// units : ["Year","Quarter","Month","Week","Day","Hour","Minute","Second","Millisecond","Microsecond"],
|
||||
// date :{
|
||||
// long : 'YYYY/MM/DD HH:mm:ss',
|
||||
// short : "YYYY/MM/DD",
|
||||
// format : "local"
|
||||
// },
|
||||
// quarter : {
|
||||
// long : ["First Quarter","Second Quarter","Third Quarter","Fourth Quarter"],
|
||||
// short : ["Q1","Q2","Q3","Q4"],
|
||||
// format : "short"
|
||||
// },
|
||||
// month:{
|
||||
// long : ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
// short : ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"],
|
||||
// format : "long" // 0-长名称,1-短名称,2-数字
|
||||
// },
|
||||
// weekday:{
|
||||
// long : ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
// short : ["Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat"],
|
||||
// format : "long", // 0-长名称,1-短名称,2-数字
|
||||
// },
|
||||
// time : {
|
||||
// long : "HH:mm:ss",
|
||||
// short : "HH:mm:ss",
|
||||
// format : 'local'
|
||||
// },
|
||||
// timeSlots : {
|
||||
// slots : [12],
|
||||
// lowerCases : ["am","pm"],
|
||||
// upperCases : ["AM","PM"]
|
||||
// },
|
||||
// relativeTime : {
|
||||
// units : ["seconds","minutes","hours","days","weeks","months","years"],
|
||||
// now : "Now",
|
||||
// before : "{value} {unit} ago",
|
||||
// after : "after {value} {unit}"
|
||||
// }
|
||||
// },
|
||||
// currency : {
|
||||
// default : "{symbol}{value}{unit}",
|
||||
// long : "{prefix} {symbol}{value}{unit}{suffix}",
|
||||
// short : "{symbol}{value}{unit}",
|
||||
// custom : "{prefix} {symbol}{value}{unit}{suffix}",
|
||||
// format : "default",
|
||||
// //--
|
||||
// units : [""," thousands"," millions"," billions"," trillions"], //千,百万,十亿,万亿
|
||||
// radix : 3, // 进制,即三位一进,中文是4位一进
|
||||
// symbol : "$", // 符号
|
||||
// prefix : "USD", // 前缀
|
||||
// suffix : "", // 后缀
|
||||
// division : 3, // ,分割位
|
||||
// precision : 2, // 精度
|
||||
|
||||
// },
|
||||
// number : {
|
||||
// division : 3, // , 分割位,3代表每3位添加一个,
|
||||
// precision : 0 // 精度,即保留小数点位置,0代表不限
|
||||
// },
|
||||
// empty:{
|
||||
// //values : [], // 可选,定义空值,如果想让0,''也为空值,可以指定values=[0,'']
|
||||
// escape : "", // 当空值时显示的备用值
|
||||
// next : 'break' // 当空值时下一步的行为: break=中止;skip=跳过
|
||||
// },
|
||||
// error : {
|
||||
// //当错误时显示的内容,支持的插值变量有message=错误信息,error=错误类名,也可以是一个返回上面内容的同步函数
|
||||
// escape : null, // 默认当错误时显示空内容
|
||||
// next : 'break' // 当出错时下一步的行为: break=中止;skip=忽略
|
||||
// },
|
||||
// fileSize:{
|
||||
// brief : ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB","NB","DB"],
|
||||
// whole : ["Bytes", "Kilobytes", "Megabytes", "Gigabytes", "TeraBytes", "PetaBytes", "ExaBytes", "ZetaBytes", "YottaBytes","DoggaBytes"],
|
||||
// precision: 2 // 小数精度
|
||||
// }
|
||||
// },
|
||||
// 改变特定数据类型的默认格式化器
|
||||
// $types:{
|
||||
// Date : dateFormatter,
|
||||
// Null : value =>"",
|
||||
// Undefined: value =>"",
|
||||
// Error : value => "ERROR",
|
||||
// Boolean : value =>value ? "True":"False",
|
||||
// Number : numberFormartter
|
||||
// }
|
||||
// 以下可以自定义编写格式化器
|
||||
// xxxx : value => { ... },
|
||||
// xxxx : (value,$config) => { ... },
|
||||
// xxxx : (value,...args,$config) => { ... },
|
||||
// xxxx : Formatter(value,...args,$config) => { ... },
|
||||
// xxxx : FlexFormatter(value,params,$config) => { ... },
|
||||
}
|
113
packages/apps/lib1/languages/formatters/zh.js
Normal file
113
packages/apps/lib1/languages/formatters/zh.js
Normal file
@ -0,0 +1,113 @@
|
||||
/**
|
||||
|
||||
格式化器用来对翻译文本内容中的插值变量进行处理
|
||||
|
||||
如何编写格式器请参阅官网!
|
||||
|
||||
*/
|
||||
|
||||
|
||||
// import { Formatter,FlexFormatter } from "./runtime"
|
||||
export default {
|
||||
// global : true, // 简单地设置为true,代表当前所有格式化器均注册到全局,false只在当前scope生效
|
||||
// global : { // 仅将里面的格式化器注册到全局
|
||||
// $config:{... }
|
||||
// xxxx : value => { ... },
|
||||
// xxxx : (value,$config) => { ... },
|
||||
// xxxx : (value,...args,$config) => { ... },
|
||||
// xxxx : Formatter(value,...args,$config) => { ... },
|
||||
// xxxx : FlexFormatter(value,params,$config) => { ... },
|
||||
//}, // 是否注册到全局,false只在当前scope生效
|
||||
// 直接对内置格式化器进行配置,请参阅官网文档
|
||||
// $config:{
|
||||
// datetime : {
|
||||
// units : ["Year","Quarter","Month","Week","Day","Hour","Minute","Second","Millisecond","Microsecond"],
|
||||
// date :{
|
||||
// long : 'YYYY/MM/DD HH:mm:ss',
|
||||
// short : "YYYY/MM/DD",
|
||||
// format : "local"
|
||||
// },
|
||||
// quarter : {
|
||||
// long : ["First Quarter","Second Quarter","Third Quarter","Fourth Quarter"],
|
||||
// short : ["Q1","Q2","Q3","Q4"],
|
||||
// format : "short"
|
||||
// },
|
||||
// month:{
|
||||
// long : ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
||||
// short : ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"],
|
||||
// format : "long" // 0-长名称,1-短名称,2-数字
|
||||
// },
|
||||
// weekday:{
|
||||
// long : ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
||||
// short : ["Sun", "Mon", "Tues", "Wed", "Thur", "Fri", "Sat"],
|
||||
// format : "long", // 0-长名称,1-短名称,2-数字
|
||||
// },
|
||||
// time : {
|
||||
// long : "HH:mm:ss",
|
||||
// short : "HH:mm:ss",
|
||||
// format : 'local'
|
||||
// },
|
||||
// timeSlots : {
|
||||
// slots : [12],
|
||||
// lowerCases : ["am","pm"],
|
||||
// upperCases : ["AM","PM"]
|
||||
// },
|
||||
// relativeTime : {
|
||||
// units : ["seconds","minutes","hours","days","weeks","months","years"],
|
||||
// now : "Now",
|
||||
// before : "{value} {unit} ago",
|
||||
// after : "after {value} {unit}"
|
||||
// }
|
||||
// },
|
||||
// currency : {
|
||||
// default : "{symbol}{value}{unit}",
|
||||
// long : "{prefix} {symbol}{value}{unit}{suffix}",
|
||||
// short : "{symbol}{value}{unit}",
|
||||
// custom : "{prefix} {symbol}{value}{unit}{suffix}",
|
||||
// format : "default",
|
||||
// //--
|
||||
// units : [""," thousands"," millions"," billions"," trillions"], //千,百万,十亿,万亿
|
||||
// radix : 3, // 进制,即三位一进,中文是4位一进
|
||||
// symbol : "$", // 符号
|
||||
// prefix : "USD", // 前缀
|
||||
// suffix : "", // 后缀
|
||||
// division : 3, // ,分割位
|
||||
// precision : 2, // 精度
|
||||
|
||||
// },
|
||||
// number : {
|
||||
// division : 3, // , 分割位,3代表每3位添加一个,
|
||||
// precision : 0 // 精度,即保留小数点位置,0代表不限
|
||||
// },
|
||||
// empty:{
|
||||
// //values : [], // 可选,定义空值,如果想让0,''也为空值,可以指定values=[0,'']
|
||||
// escape : "", // 当空值时显示的备用值
|
||||
// next : 'break' // 当空值时下一步的行为: break=中止;skip=跳过
|
||||
// },
|
||||
// error : {
|
||||
// //当错误时显示的内容,支持的插值变量有message=错误信息,error=错误类名,也可以是一个返回上面内容的同步函数
|
||||
// escape : null, // 默认当错误时显示空内容
|
||||
// next : 'break' // 当出错时下一步的行为: break=中止;skip=忽略
|
||||
// },
|
||||
// fileSize:{
|
||||
// brief : ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB","NB","DB"],
|
||||
// whole : ["Bytes", "Kilobytes", "Megabytes", "Gigabytes", "TeraBytes", "PetaBytes", "ExaBytes", "ZetaBytes", "YottaBytes","DoggaBytes"],
|
||||
// precision: 2 // 小数精度
|
||||
// }
|
||||
// },
|
||||
// 改变特定数据类型的默认格式化器
|
||||
// $types:{
|
||||
// Date : dateFormatter,
|
||||
// Null : value =>"",
|
||||
// Undefined: value =>"",
|
||||
// Error : value => "ERROR",
|
||||
// Boolean : value =>value ? "True":"False",
|
||||
// Number : numberFormartter
|
||||
// }
|
||||
// 以下可以自定义编写格式化器
|
||||
// xxxx : value => { ... },
|
||||
// xxxx : (value,$config) => { ... },
|
||||
// xxxx : (value,...args,$config) => { ... },
|
||||
// xxxx : Formatter(value,...args,$config) => { ... },
|
||||
// xxxx : FlexFormatter(value,params,$config) => { ... },
|
||||
}
|
@ -1,7 +1,3 @@
|
||||
export default {
|
||||
"a":1,
|
||||
"b":2,
|
||||
"c{}{}":3,
|
||||
"d{a}{b}":4,
|
||||
"e":5
|
||||
}
|
||||
"这是一个测试": 1
|
||||
}
|
54
packages/apps/lib1/languages/index.js
Normal file
54
packages/apps/lib1/languages/index.js
Normal file
@ -0,0 +1,54 @@
|
||||
|
||||
import messageIds from "./idMap.js" // 语言ID映射文件
|
||||
import runtime from "@voerkai18n/runtime"
|
||||
const { translate,VoerkaI18nScope } = runtime
|
||||
import defaultFormatters from "./formatters/zh"
|
||||
const activeFormatters = defaultFormatters
|
||||
import defaultMessages from "./zh.js"
|
||||
const activeMessages = defaultMessages
|
||||
|
||||
|
||||
// 语言配置文件
|
||||
const scopeSettings = {
|
||||
"languages": [
|
||||
{
|
||||
"name": "zh",
|
||||
"title": "中文"
|
||||
},
|
||||
{
|
||||
"name": "en",
|
||||
"title": "英语"
|
||||
}
|
||||
],
|
||||
"defaultLanguage": "zh",
|
||||
"activeLanguage": "zh",
|
||||
"namespaces": {}
|
||||
}
|
||||
const formatters = {
|
||||
'zh' : defaultFormatters,
|
||||
'en' : ()=>import("./formatters/en.js")
|
||||
}
|
||||
// 语言包加载器
|
||||
const loaders = {
|
||||
"en" : ()=>import("./en.js")
|
||||
}
|
||||
|
||||
// 语言作用域
|
||||
const scope = new VoerkaI18nScope({
|
||||
...scopeSettings, // languages,defaultLanguage,activeLanguage,namespaces,formatters
|
||||
id : "lib1", // 当前作用域的id,自动取当前工程的package.json的name
|
||||
debug : false, // 是否在控制台输出高度信息
|
||||
default : defaultMessages, // 默认语言包
|
||||
messages : activeMessages, // 当前语言包
|
||||
idMap : messageIds, // 消息id映射列表
|
||||
formatters, // 扩展自定义格式化器
|
||||
loaders // 语言包加载器
|
||||
})
|
||||
// 翻译函数
|
||||
const scopedTtranslate = translate.bind(scope)
|
||||
|
||||
export {
|
||||
scopedTtranslate as t,
|
||||
scope as i18nScope
|
||||
}
|
||||
|
15
packages/apps/lib1/languages/settings.json
Normal file
15
packages/apps/lib1/languages/settings.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"languages": [
|
||||
{
|
||||
"name": "zh",
|
||||
"title": "中文"
|
||||
},
|
||||
{
|
||||
"name": "en",
|
||||
"title": "英语"
|
||||
}
|
||||
],
|
||||
"defaultLanguage": "zh",
|
||||
"activeLanguage": "zh",
|
||||
"namespaces": {}
|
||||
}
|
8
packages/apps/lib1/languages/translates/default.json
Normal file
8
packages/apps/lib1/languages/translates/default.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"这是一个测试": {
|
||||
"en": "这是一个测试",
|
||||
"$file": [
|
||||
"index.js"
|
||||
]
|
||||
}
|
||||
}
|
3
packages/apps/lib1/languages/zh.js
Normal file
3
packages/apps/lib1/languages/zh.js
Normal file
@ -0,0 +1,3 @@
|
||||
export default {
|
||||
"1": "这是一个测试"
|
||||
}
|
18
packages/apps/lib1/package.json
Normal file
18
packages/apps/lib1/package.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "lib1",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@voerkai18n/cli": "workspace:^1.0.41"
|
||||
},
|
||||
"dependencies": {
|
||||
"@voerkai18n/runtime": "workspace:^1.1.10"
|
||||
}
|
||||
}
|
0
packages/apps/lib1/pnpm-lock.yaml
generated
Normal file
0
packages/apps/lib1/pnpm-lock.yaml
generated
Normal file
@ -25,7 +25,7 @@
|
||||
const glob = require("glob")
|
||||
const createLogger = require("logsets")
|
||||
const path = require("path")
|
||||
const { findModuleType,getCurrentPackageJson,installVoerkai18nRuntime,isInstallDependent,updateVoerkai18nRuntime} = require("@voerkai18n/utils")
|
||||
const { findModuleType,getCurrentPackageJson} = require("@voerkai18n/utils")
|
||||
const { t } = require("./i18nProxy")
|
||||
const fs = require("fs-extra")
|
||||
const logger = createLogger()
|
||||
|
@ -1,6 +1,5 @@
|
||||
const { Command } = require('commander');
|
||||
const createLogger = require("logsets")
|
||||
const bannerPluin = require("logsets/plugins/banner")
|
||||
|
||||
const path = require("path")
|
||||
const fs = require("fs-extra")
|
||||
@ -8,7 +7,6 @@ const logger = createLogger()
|
||||
const { i18nScope ,t } = require("./i18nProxy")
|
||||
const { getProjectSourceFolder,isTypeScriptProject } = require("@voerkai18n/utils");
|
||||
|
||||
logger.use(bannerPluin)
|
||||
|
||||
const program = new Command();
|
||||
program
|
||||
@ -30,6 +28,7 @@ program
|
||||
.argument('[location]', t('工程项目所在目录'))
|
||||
.description(t('初始化项目国际化配置'))
|
||||
.option('-D, --debug', t('输出调试信息'))
|
||||
.option('-m, --moduleType [types]', t('输出模块类型,取值auto,esm,cjs'), 'esm')
|
||||
.option('-r, --reset', t('重新生成当前项目的语言配置'))
|
||||
.option('-lngs, --languages <languages...>', t('支持的语言列表'), ['zh','en'])
|
||||
.option('-d, --defaultLanguage <name>', t('默认语言'), 'zh')
|
||||
@ -39,6 +38,7 @@ program
|
||||
await i18nScope.change(lang)
|
||||
})
|
||||
.action((location,options) => {
|
||||
options.isTypeScript = options.typescript==undefined ? isTypeScriptProject() : options.typescript
|
||||
location = getProjectSourceFolder(location)
|
||||
logger.log(t("工程目录:{}"),location)
|
||||
//
|
||||
|
@ -10,6 +10,7 @@ const { t } = require("./i18nProxy")
|
||||
const createLogger = require("logsets")
|
||||
const logger = createLogger()
|
||||
const { installPackage } = require("@voerkai18n/utils")
|
||||
const artTemplate = require("art-template")
|
||||
|
||||
function getLanguageList(langs,defaultLanguage){
|
||||
try{
|
||||
@ -38,16 +39,17 @@ function getLanguageList(langs,defaultLanguage){
|
||||
}
|
||||
|
||||
|
||||
module.exports = function(srcPath,{debug = true,languages=["zh","en"],defaultLanguage="zh",activeLanguage="zh",reset=false,installRuntime=true}={}){
|
||||
|
||||
module.exports = function(srcPath,{moduleType='cjs',isTypeScript,debug = true,languages=["zh","en"],defaultLanguage="zh",activeLanguage="zh",reset=false}={}){
|
||||
let settings = {}
|
||||
let tasks = logger.tasklist("初始化VoerkaI18n工程")
|
||||
const langFolderName = "languages"
|
||||
// 查找当前项目的语言包类型路径
|
||||
const lngPath = path.join(srcPath,langFolderName)
|
||||
|
||||
// 语言文件夹名称
|
||||
try{
|
||||
tasks.add("创建语言包文件夹")
|
||||
const langPath = "languages"
|
||||
// 查找当前项目的语言包类型路径
|
||||
const lngPath = path.join(srcPath,langPath)
|
||||
|
||||
if(!fs.existsSync(lngPath)){
|
||||
fs.mkdirSync(lngPath)
|
||||
if(debug) logger.log(t("创建语言包文件夹: {}"),lngPath)
|
||||
@ -63,9 +65,10 @@ module.exports = function(srcPath,{debug = true,languages=["zh","en"],defaultLan
|
||||
const settingsFile = path.join(lngPath,"settings.json")
|
||||
if(fs.existsSync(settingsFile) && !reset){
|
||||
if(debug) logger.log(t("语言配置文件{}文件已存在,跳过创建。\n使用{}可以重新覆盖创建"),settingsFile,"-r")
|
||||
tasks.skip()
|
||||
return
|
||||
}
|
||||
const settings = {
|
||||
settings = {
|
||||
languages:getLanguageList(languages,defaultLanguage),
|
||||
defaultLanguage,
|
||||
activeLanguage,
|
||||
@ -78,12 +81,26 @@ module.exports = function(srcPath,{debug = true,languages=["zh","en"],defaultLan
|
||||
tasks.error(e.message)
|
||||
}
|
||||
|
||||
// 生成一个语言初始化文件,该文件在执行extract/compile前提供访问t函数的能力
|
||||
try{
|
||||
tasks.add("初始化语言上下文")
|
||||
const templateContext = {
|
||||
moduleType
|
||||
}
|
||||
const entryContent = artTemplate(path.join(__dirname,"templates",`init-entry.${isTypeScript ? 'ts' : 'js'}`), templateContext )
|
||||
fs.writeFileSync(path.join(lngPath,`index.${isTypeScript ? 'ts' : 'js'}`),entryContent)
|
||||
tasks.complete()
|
||||
}catch(e){
|
||||
tasks.error(e.message)
|
||||
}
|
||||
|
||||
try{
|
||||
tasks.add(t("安装运行时依赖@voerkai18n/runtime"))
|
||||
installPackage('@voerkai18n/runtime')
|
||||
tasks.complete()
|
||||
}catch(e){
|
||||
tasks.error(e.message)
|
||||
console.error(e.stack)
|
||||
}
|
||||
|
||||
if(debug) {
|
||||
|
@ -40,15 +40,12 @@
|
||||
"fs-extra": "^10.0.1",
|
||||
"glob": "^7.2.0",
|
||||
"gulp": "^4.0.2",
|
||||
"logsets": "^1.0.8",
|
||||
"logsets": "^1.0.20",
|
||||
"md5": "^2.3.0",
|
||||
"qs": "^6.10.3",
|
||||
"shelljs": "^0.8.5",
|
||||
"through2": "^4.0.2",
|
||||
"vinyl": "^2.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@voerkai18n/autopublish": "workspace:^1.0.2"
|
||||
},
|
||||
"lastPublish": "2023-01-11T21:51:34+08:00"
|
||||
}
|
35
packages/cli/templates/init-entry.js
Normal file
35
packages/cli/templates/init-entry.js
Normal file
@ -0,0 +1,35 @@
|
||||
/**
|
||||
* 初始化入口
|
||||
*
|
||||
* 本文件仅供在执行voerkai18n extract&compile前提供t函数引用
|
||||
*
|
||||
*/
|
||||
{{if moduleType === "esm"}}
|
||||
import runtime from "@voerkai18n/runtime"
|
||||
const { translate,VoerkaI18nScope } = runtime
|
||||
{{else}}
|
||||
const { translate,i18nScope } = require("@voerkai18n/runtime")
|
||||
{{/if}}
|
||||
|
||||
|
||||
// 语言作用域
|
||||
const scope = new VoerkaI18nScope({
|
||||
id : "{{scopeId}}", // 当前作用域的id,自动取当前工程的package.json的name
|
||||
debug : false, // 是否在控制台输出高度信息
|
||||
default : {}, // 默认语言包
|
||||
messages : {}, // 当前语言包
|
||||
idMap : {}, // 消息id映射列表
|
||||
formatters, // 扩展自定义格式化器
|
||||
loaders : {} // 语言包加载器
|
||||
})
|
||||
// 翻译函数
|
||||
const scopedTtranslate = translate.bind(scope)
|
||||
{{if moduleType === "esm"}}
|
||||
export {
|
||||
scopedTtranslate as t,
|
||||
scope as i18nScope
|
||||
}
|
||||
{{else}}
|
||||
module.exports.t = scopedTtranslate
|
||||
module.exports.i18nScope = scope
|
||||
{{/if}}
|
26
packages/cli/templates/init-entry.ts
Normal file
26
packages/cli/templates/init-entry.ts
Normal file
@ -0,0 +1,26 @@
|
||||
/**
|
||||
* 初始化入口
|
||||
*
|
||||
* 本文件仅供在执行voerkai18n extract&compile前提供t函数引用
|
||||
*
|
||||
*/
|
||||
import runtime from "@voerkai18n/runtime"
|
||||
const { translate,VoerkaI18nScope } = runtime
|
||||
|
||||
|
||||
// 语言作用域
|
||||
const scope = new VoerkaI18nScope({
|
||||
id : "{{scopeId}}", // 当前作用域的id,自动取当前工程的package.json的name
|
||||
debug : false, // 是否在控制台输出高度信息
|
||||
default : {}, // 默认语言包
|
||||
messages : {}, // 当前语言包
|
||||
idMap : {}, // 消息id映射列表
|
||||
formatters : {}, // 扩展自定义格式化器
|
||||
loaders : {} // 语言包加载器
|
||||
})
|
||||
// 翻译函数
|
||||
const scopedTtranslate = translate.bind(scope)
|
||||
export {
|
||||
scopedTtranslate as t,
|
||||
scope as i18nScope
|
||||
}
|
@ -30,9 +30,7 @@ const fs = require("fs-extra")
|
||||
const { glob } = require("glob")
|
||||
const { default: axios } = require("axios")
|
||||
const logger = createLogger()
|
||||
const TaskListPlugin = require("logsets/plugins/tasklist")
|
||||
const { deepMerge } = require("@voerkai18n/utils")
|
||||
logger.use(TaskListPlugin)
|
||||
|
||||
const delay = async (t) => new Promise(resolve=>setTimeout(resolve,t))
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@voerkai18n/runtime",
|
||||
"version": "1.1.10",
|
||||
"version": "1.1.11",
|
||||
"description": "核心运行时",
|
||||
"main": "./dist/index.cjs",
|
||||
"module": "./dist/index.esm.js",
|
||||
@ -41,4 +41,4 @@
|
||||
"rollup-plugin-terser": "^7.0.2"
|
||||
},
|
||||
"lastPublish": "2023-01-11T21:50:59+08:00"
|
||||
}
|
||||
}
|
||||
|
@ -409,7 +409,7 @@ function deepMerge(toObj,formObj,options={}){
|
||||
}
|
||||
|
||||
function getPackageTool(){
|
||||
const projectFolder = getProjectRootFolder(srcPath || process.cwd())
|
||||
const projectFolder = getProjectRootFolder(process.cwd())
|
||||
if(fs.existsSync(path.join(projectFolder,"pnpm-lock.yaml"))){
|
||||
return 'pnpm'
|
||||
}else if(fs.existsSync(path.join(projectFolder,"yarn.lock"))){
|
||||
|
48
pnpm-lock.yaml
generated
48
pnpm-lock.yaml
generated
@ -4,28 +4,28 @@ importers:
|
||||
|
||||
.:
|
||||
specifiers:
|
||||
'@babel/core': ^7.17.8
|
||||
'@babel/plugin-transform-runtime': ^7.17.0
|
||||
'@babel/preset-env': ^7.16.11
|
||||
'@babel/core': ^7.18.10
|
||||
'@babel/plugin-transform-runtime': ^7.18.10
|
||||
'@babel/preset-env': ^7.18.10
|
||||
'@rollup/plugin-babel': ^5.3.1
|
||||
'@rollup/plugin-commonjs': ^21.0.2
|
||||
'@vuepress/client': ^2.0.0-beta.49
|
||||
'@rollup/plugin-commonjs': ^21.1.0
|
||||
'@vuepress/client': 2.0.0-beta.49
|
||||
autopub: ^1.0.2
|
||||
commander: ^9.0.0
|
||||
commander: ^9.4.0
|
||||
cross-env: ^7.0.3
|
||||
dayjs: ^1.11.0
|
||||
dayjs: ^1.11.4
|
||||
deepmerge: ^4.2.2
|
||||
dumi: ^1.1.47
|
||||
enquirer: ^2.3.6
|
||||
fast-glob: ^3.2.11
|
||||
fs-extra: ^10.1.0
|
||||
gulp: ^4.0.2
|
||||
inquirer: ^8.2.2
|
||||
inquirer: ^8.2.4
|
||||
jest: ^27.5.1
|
||||
logsets: ^1.0.20
|
||||
pnpm: ^7.8.0
|
||||
prettier: ^2.2.1
|
||||
rollup: ^2.70.1
|
||||
pnpm: ^7.9.0
|
||||
prettier: ^2.7.1
|
||||
rollup: ^2.77.2
|
||||
rollup-plugin-clear: ^2.0.7
|
||||
semver: ^7.3.7
|
||||
shelljs: ^0.8.5
|
||||
@ -70,6 +70,15 @@ importers:
|
||||
'@voerkai18n/cli': link:../../cli
|
||||
'@voerkai18n/runtime': link:../../runtime
|
||||
|
||||
packages/apps/lib1:
|
||||
specifiers:
|
||||
'@voerkai18n/cli': workspace:^1.0.41
|
||||
'@voerkai18n/runtime': workspace:^1.1.10
|
||||
dependencies:
|
||||
'@voerkai18n/runtime': link:../../runtime
|
||||
devDependencies:
|
||||
'@voerkai18n/cli': link:../../cli
|
||||
|
||||
packages/apps/reactapp:
|
||||
specifiers:
|
||||
'@babel/runtime-corejs3': ^7.20.7
|
||||
@ -157,7 +166,6 @@ importers:
|
||||
specifiers:
|
||||
'@babel/cli': ^7.17.6
|
||||
'@babel/core': ^7.17.5
|
||||
'@voerkai18n/autopublish': workspace:^1.0.2
|
||||
'@voerkai18n/runtime': workspace:^1.0.14
|
||||
'@voerkai18n/utils': workspace:^1.0.6
|
||||
art-template: ^4.13.2
|
||||
@ -168,7 +176,7 @@ importers:
|
||||
fs-extra: ^10.0.1
|
||||
glob: ^7.2.0
|
||||
gulp: ^4.0.2
|
||||
logsets: ^1.0.8
|
||||
logsets: ^1.0.20
|
||||
md5: ^2.3.0
|
||||
qs: ^6.10.3
|
||||
shelljs: ^0.8.5
|
||||
@ -187,14 +195,12 @@ importers:
|
||||
fs-extra: 10.1.0
|
||||
glob: 7.2.3
|
||||
gulp: 4.0.2
|
||||
logsets: 1.0.12
|
||||
logsets: 1.0.20
|
||||
md5: 2.3.0
|
||||
qs: 6.11.0
|
||||
shelljs: 0.8.5
|
||||
through2: 4.0.2
|
||||
vinyl: 2.2.1
|
||||
devDependencies:
|
||||
'@voerkai18n/autopublish': link:../autopublish
|
||||
|
||||
packages/formatters:
|
||||
specifiers:
|
||||
@ -7786,15 +7792,6 @@ packages:
|
||||
is-unicode-supported: 0.1.0
|
||||
dev: true
|
||||
|
||||
/logsets/1.0.12:
|
||||
resolution: {integrity: sha512-0sIHPbyhHDKZll7j6XnTq91pe8QTBshapB2BDVD6lOqKuyitukK2Grt7iEbUF432kaBt+xDvYiU3DadaUyowog==}
|
||||
dependencies:
|
||||
'@babel/runtime-corejs3': 7.18.9
|
||||
ansicolor: 1.1.100
|
||||
core-js: 3.24.1
|
||||
deepmerge: 4.2.2
|
||||
dev: false
|
||||
|
||||
/logsets/1.0.20:
|
||||
resolution: {integrity: sha512-2ch4+TSciSTFAkkIv9tL7xOMe0Tg+XYsR//EAcMW2227bWjscReAoz2GLkjIMJMACHVZIyXmKrohtiV9z6M1iQ==}
|
||||
dependencies:
|
||||
@ -7802,7 +7799,6 @@ packages:
|
||||
ansicolor: 1.1.100
|
||||
core-js: 3.24.1
|
||||
deepmerge: 4.2.2
|
||||
dev: true
|
||||
|
||||
/longest-streak/2.0.4:
|
||||
resolution: {integrity: sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==}
|
||||
|
Loading…
x
Reference in New Issue
Block a user