translationI18n
Translate text between languages using the MCP-Serve multilingual translation service. This tool processes input text through external APIs for automatic language conversion and resource management.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes |
Implementation Reference
- src/index.ts:18-48 (handler)The handler function for the translationI18n tool. It uses regex to find content between ## markers, prepares params, optionally translates to English if port==5500, calls geti18n API, replaces the markers with aliases, and returns a text content block.async ({ input }) => { // 匹配所有 ##...## 的内容 const regex = /##([\s\S]+?)##/g; let matches = input.matchAll(regex); let result = input; for (const match of matches) { const value = match[1]; if (!value) continue; let params: Record<string, any> = { language: 1, autoAlias: true, value: value, }; if (port === "5500") { params.valueEn = await TranslateToEn(value); } // 调用多语言接口 const alias = await geti18n(params); if (alias) { result = result.replace(match[0], alias); } } return { content: [ { type: "text", text: result, }, ], }; }
- src/index.ts:15-17 (schema)Input schema definition using Zod: expects a single string input.{ input: z.string(), },
- src/index.ts:13-49 (registration)Registration of the translationI18n tool on the McpServer instance.server.tool( "translationI18n", { input: z.string(), }, async ({ input }) => { // 匹配所有 ##...## 的内容 const regex = /##([\s\S]+?)##/g; let matches = input.matchAll(regex); let result = input; for (const match of matches) { const value = match[1]; if (!value) continue; let params: Record<string, any> = { language: 1, autoAlias: true, value: value, }; if (port === "5500") { params.valueEn = await TranslateToEn(value); } // 调用多语言接口 const alias = await geti18n(params); if (alias) { result = result.replace(match[0], alias); } } return { content: [ { type: "text", text: result, }, ], }; } );
- src/api.ts:13-25 (helper)Helper function that calls the /MultiLanguageResource/AddResource API to get the i18n alias for given params.async function geti18n(params: Record<string, any>) { const res = await http.post( "/MultiLanguageResource/AddResource", params, baseConfig ); if (res.Data) { return res.Data.ResourceAlias; } else { return ""; } }
- src/api.ts:27-34 (helper)Helper function that translates text to English via API, used conditionally in handler.async function TranslateToEn(text: string) { const res = await http.get( "/MultiLanguageResource/TranslateToEn", { text }, baseConfig ); return res; }