Skip to main content
Glama
oofengoo

MCP-Serve 多语言翻译服务

by oofengoo

copyI18n

Extract and manage multilingual texts from specified directories using automated translation APIs, ensuring consistent localization across projects with MCP-Serve’s translation service.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rootPathYes

Implementation Reference

  • Handler for copyI18n tool: downloads language files for ZhCn (and EnUs if port 5500) using downFile, pipes to temporary file in rootPath, copies to src/lang/source/, cleans up temp, returns text result.
    async ({ rootPath }) => { let langArr = [{ name: "ZhCn", value: 1, filePath: "ZhCn.js" }]; // 目前只有企业版需要英文文件 if (port === "5500") { langArr.push({ name: "EnUs", value: 2, filePath: "EnUs.js" }); } // 获取工作区根路径 // const rootPath = process.cwd(); let result = ""; try { for (let lang of langArr) { const langTargetPath = path.join( rootPath, "src/lang/source", lang.filePath ); const tempFilePath = path.join(rootPath, lang.filePath); // 创建一个写入流 const writer = fs.createWriteStream(tempFilePath); const res = await downFile(lang.value); res.data.pipe(writer); await new Promise<void>((resolve, reject) => { writer.on("finish", () => resolve()); writer.on("error", (err) => reject(err)); }); fs.copyFileSync(tempFilePath, langTargetPath); fs.unlinkSync(tempFilePath); console.log(`${lang.name}文件复制成功`); result = `${tempFilePath}文件复制成功`; } } catch (error) { console.log("文件复制失败", error); result = `文件复制失败${error},${rootPath},`; } return { content: [ { type: "text", text: result, }, ], }; }
  • Input schema: object with required 'rootPath' string property.
    { rootPath: z.string(), },
  • src/index.ts:52-99 (registration)
    Registers the 'copyI18n' tool on the MCP server with its schema and handler.
    "copyI18n", { rootPath: z.string(), }, async ({ rootPath }) => { let langArr = [{ name: "ZhCn", value: 1, filePath: "ZhCn.js" }]; // 目前只有企业版需要英文文件 if (port === "5500") { langArr.push({ name: "EnUs", value: 2, filePath: "EnUs.js" }); } // 获取工作区根路径 // const rootPath = process.cwd(); let result = ""; try { for (let lang of langArr) { const langTargetPath = path.join( rootPath, "src/lang/source", lang.filePath ); const tempFilePath = path.join(rootPath, lang.filePath); // 创建一个写入流 const writer = fs.createWriteStream(tempFilePath); const res = await downFile(lang.value); res.data.pipe(writer); await new Promise<void>((resolve, reject) => { writer.on("finish", () => resolve()); writer.on("error", (err) => reject(err)); }); fs.copyFileSync(tempFilePath, langTargetPath); fs.unlinkSync(tempFilePath); console.log(`${lang.name}文件复制成功`); result = `${tempFilePath}文件复制成功`; } } catch (error) { console.log("文件复制失败", error); result = `文件复制失败${error},${rootPath},`; } return { content: [ { type: "text", text: result, }, ], }; } );

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oofengoo/mcp-serve-learn'

If you have feedback or need assistance with the MCP directory API, please join our Discord server