From 45a223339af25899b0070020dad201d7b9673abc Mon Sep 17 00:00:00 2001 From: h7ml Date: Fri, 20 Dec 2024 11:44:13 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20=E6=B7=BB=E5=8A=A0=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=B9=B6=E4=BC=98=E5=8C=96=20CI=20=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增翻译任务,将系统文档翻译成英文、日文和朝鲜语 - 在 CI 工作流中添加翻译步骤,使用 GPT-4 和其他模型进行翻译 - 更新 README-zh.md,对文档进行修订和合并 - 新增 copy.js 脚本,用于复制 Markdown 文件 - 添加系统和翻译文档,为 AI 翻译提供指导 --- .github/workflows/ci.yml | 7 +- README-zh.md | 90 +++++++++--------- package.json | 2 +- scripts/copy.js | 30 ++++++ src/assistant.md | 199 ++++++++++++++++++++++++++++++++++++++ src/index.ts | 21 +++- src/system.md | 44 +++++++++ src/translate.md | 200 +++++++++++++++++++++++++++++++++++++++ translate/system.md | 44 +++++++++ 9 files changed, 586 insertions(+), 51 deletions(-) create mode 100644 scripts/copy.js create mode 100644 src/assistant.md create mode 100644 src/system.md create mode 100644 src/translate.md create mode 100644 translate/system.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1a2ae1d..fc07db9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,10 +64,13 @@ jobs: - name: Test run: | pnpm test || (echo "Test failed" && exit 1) - + mkdir -p translate + node ./dist/index.js -i ./src/system.md -o ./translate/system-gpt-4o-en.md -l English --openai-url https://models.inference.ai.azure.com/chat/completions --api-key ${{ secrets.OPENAI_API_KEY }} --model gpt-4o + node ./dist/index.js -i ./src/system.md -o ./translate/system-ministral-3b-ja.md -l Japanese --openai-url https://models.inference.ai.azure.com/chat/completions --api-key ${{ secrets.OPENAI_API_KEY }} --model Ministral-3B + node ./dist/index.js -i ./src/system.md -o ./translate/system-phi-3.5-mini-instruct-ko.md -l 朝鲜语 --openai-url https://models.inference.ai.azure.com/chat/completions --api-key ${{ secrets.OPENAI_API_KEY }} --model Phi-3.5-mini-instruct - name: Commit and Push run: | - git add README-zh.md + git add README-zh.md translate/ git config --local user.email "action@h7ml.cn" git config --local user.name "GitHub Action" git config advice.ignoredHook false diff --git a/README-zh.md b/README-zh.md index 1cc34e3..e999d0d 100644 --- a/README-zh.md +++ b/README-zh.md @@ -1,42 +1,42 @@ -以下是经过修订和整合的`ai-markdown-translator`文档,其中包含`npx`和`./ai-markdown-translator`的示例: +这里是经过修订和合并的 `ai-markdown-translator` 文档版本,同时包含了 `npx` 和 `./ai-markdown-translator` 示例: --- # ai-markdown-translator
- NPM version + NPM 版本 CI - Release - NPM Downloads - NPM License + 发布 + NPM 下载量 + NPM 许可证 GitHub Stars GitHub Issues GitHub Forks GitHub Contributors
-[English](README.md) | [中文](README-zh.md) +[英文](README.md) | [中文](README-zh.md) -`ai-markdown-translator` 是一个命令行工具,使用 OpenAI 的语言模型将 Markdown 文件从一种语言翻译为另一种语言。它在翻译内容时保持 Markdown 语法。 +`ai-markdown-translator` 是一个命令行工具,用于使用 OpenAI 的语言模型将 Markdown 文件从一种语言翻译成另一种语言。它在翻译内容时保留 Markdown 语法。 ## 特性 -- 将 Markdown 文件翻译成 OpenAI 模型支持的任何语言。 -- 在翻译过程中保留 Markdown 语法。 -- 通过命令行参数或环境变量进行灵活配置。 +- 将 Markdown 文件翻译为 OpenAI 模型支持的任何语言。 +- 在翻译过程中保持 Markdown 语法。 +- 通过命令行参数或环境变量灵活配置。 -## 先决条件 +## 前提条件 - Node.js (v14 或更高) -- npm (通常与 Node.js 一起安装) +- npm (通常随 Node.js 一起安装) - OpenAI API 密钥 ## 安装 -1. 克隆此代码库或下载源代码。 +1. 克隆此存储库或下载源代码。 2. 在终端中导航到项目目录。 -3. 安装依赖项: +3. 安装依赖: ```bash npm install @@ -51,19 +51,19 @@ npm run build ## 脚本 - `build`: 将 TypeScript 文件编译为 JavaScript。 -- `start`: 使用 Node.js 运行编译后的 JavaScript。 -- `lint`: 使用 ESLint 检查 TypeScript 文件中的代码质量问题。 -- `lint:fix`: 自动修复 TypeScript 文件中的 linting 问题。 -- `format`: 使用 Prettier 格式化 `src` 目录中的各种文件类型。 -- `format:check`: 检查 `src` 目录中各种文件类型的代码格式,而不进行更改。 +- `start`: 使用 Node.js 运行已编译的 JavaScript。 +- `lint`: 运行 ESLint 检查 TypeScript 文件中的代码质量问题。 +- `lint:fix`: 自动修复 TypeScript 文件中的 lint 问题。 +- `format`: 使用 Prettier 格式化 `src` 目录中的各种文件类型代码。 +- `format:check`: 检查代码格式而不进行更改,适用于 `src` 目录中的各种文件类型。 - `postbuild`: 使编译后的 `index.js` 文件可执行。 -- `changelog`: 基于约定式提交生成变更日志。 -- `version`: 在版本更新时更新变更日志并将其加入版本提交。 +- `changelog`: 生成基于常规提交的变更日志。 +- `version`: 当版本变更时更新变更日志并将其暂存以供提交。 - `test`: 构建项目并运行测试。 -## 使用方法 +## 用法 -您可以使用 Node.js、`npx` 或作为独立可执行文件(如果您已打包)来运行 CLI 工具。 +你可以使用 Node.js、`npx` 或作为独立可执行文件(如果你已经打包它)来运行 CLI 工具。 ### 使用 Node.js @@ -91,54 +91,54 @@ npx ai-markdown-translator -u https://gitee.com/h7ml/ai-markdown-translator/raw/ ## 选项 -- `--input`, `-i`: 输入 Markdown 文件或目录(替代 `--url`)。此选项允许您指定要翻译的 Markdown 文件或目录的路径。 -- `--url`, `-u`: 要翻译的 Markdown 文件的 URL(替代 `--input`)。使用此选项提供您想要翻译的 Markdown 文件的直接链接。 +- `--input`, `-i`: 输入的 Markdown 文件或目录(替代 `--url`)。此选项允许你指定要翻译的 Markdown 文件或目录的路径。 +- `--url`, `-u`: 要翻译的 Markdown 文件的 URL(替代 `--input`)。使用此选项提供要翻译的 Markdown 文件的直接链接。 -- `--extension`, `-e`: 指定要翻译的文件扩展名(例如,`md`)。如果未提供,将处理所有文件。此选项允许您根据文件的扩展名过滤要翻译的文件。 +- `--extension`, `-e`: 指定要翻译的文件扩展名(例如,`md`)。如果未提供,将处理所有文件。此选项允许你根据文件扩展名过滤要翻译的文件。 -- `--rename`: 是否修改文件名。如果为 true,则输出文件将命名为 `<原文件名>-translated.<扩展名>`。此选项允许您指定是否希望在翻译后的文件名后附加后缀。 +- `--rename`: 是否修改文件名。如果为真,输出文件将命名为 `<原始文件名>-translated.<扩展名>`。此选项允许你指定是否希望在翻译后的文件名中附加后缀。 -- `--output`, `-o`: 输出 Markdown 文件(如果未提供,默认为输入文件名)。此选项允许您指定保存翻译内容的输出文件的名称。 +- `--output`, `-o`: 输出的 Markdown 文件(如果未提供,默认为输入文件名)。此选项允许你指定翻译内容保存输出文件的名称。 -- `--language`, `-l`: 翻译的目标语言(必需)。此选项指定您希望将 Markdown 内容翻译成的语言。 +- `--language`, `-l`: 翻译的目标语言(必填)。此选项指定你希望将 Markdown 内容翻译成的语言。 -- `--openai-url`: OpenAI API URL(默认:使用 `OPENAI_URL` 环境变量)。此选项允许您如有需要指定自定义的 OpenAI API URL。 +- `--openai-url`: OpenAI API URL(默认:使用 `OPENAI_URL` 环境变量)。此选项允许你在需要时指定 OpenAI API 的自定义 URL。 -- `--api-key`: OpenAI API 密钥(默认:使用 `API_KEY` 环境变量)。此选项用于提供您的 OpenAI API 密钥以进行身份验证。 +- `--api-key`: OpenAI API 密钥(默认:使用 `API_KEY` 环境变量)。此选项用于提供你的 OpenAI API 密钥以进行身份验证。 -- `--model`: 要使用的 OpenAI 模型(默认:使用 `MODEL` 环境变量或 `gpt-3.5-turbo`)。此选项允许您指定要用于翻译的 OpenAI 模型。 +- `--model`: 使用的 OpenAI 模型(默认:使用 `MODEL` 环境变量或 `gpt-3.5-turbo`)。此选项允许你指定要用于翻译的 OpenAI 模型。 - `--help`, `-h`: 显示帮助。此选项显示命令行工具的帮助信息。 - `--show-version`, `-v`: 显示版本。此选项显示工具的当前版本。 -> 注意:`--input` 和 `--url` 是互斥的;您必须提供其中一个。 +> 注意:`--input` 和 `--url` 是互斥的;你必须提供其中一个。 ## 环境变量 -您可以设置以下环境变量,而不是将它们作为命令行参数传递: +你可以设置以下环境变量,而不是作为命令行参数传递它们: - `OPENAI_URL`: OpenAI API 的 URL。 -- `API_KEY`: 您的 OpenAI API 密钥。 +- `API_KEY`: 你的 OpenAI API 密钥。 - `MODEL`: 要使用的 OpenAI 模型(例如,`'gpt-3.5-turbo'`)。 -您可以在项目根目录中的 `.env` 文件中设置这些变量,或在 shell 中导出它们。 +你可以在项目根目录的 `.env` 文件中设置这些变量,或者在命令行中导出它们。 ## 示例 -1. **将 Markdown 文件从英文翻译成西班牙文:** +1. **将 Markdown 文件从英语翻译成西班牙语:** ```bash npx ai-markdown-translator -i english.md -o spanish.md -l "西班牙语" ``` -2. **使用特定的 OpenAI 模型翻译:** +2. **使用特定的 OpenAI 模型进行翻译:** ```bash npx ai-markdown-translator -i input.md -o output.md -l "法语" --model "gpt-4" ``` -3. **使用自定义 OpenAI URL 和 API 密钥翻译:** +3. **使用自定义 OpenAI URL 和 API 密钥进行翻译:** ```bash npx ai-markdown-translator -i input.md -o output.md -l "德语" --openai-url "https://api.302.ai/v1/chat/completions" --api-key "sk-302-api-key" @@ -168,7 +168,7 @@ npx ai-markdown-translator -i example.md -o translated_example.md -l "日语" ## Git 信息 -- **代码库**: [h7ml/ai-markdown-translator](https://github.com/h7ml/ai-markdown-translator) +- **存储库**: [h7ml/ai-markdown-translator](https://github.com/h7ml/ai-markdown-translator) - **问题**: [报告问题](https://github.com/h7ml/ai-markdown-translator/issues) ## 版本信息 @@ -178,12 +178,12 @@ npx ai-markdown-translator -i example.md -o translated_example.md -l "日语" ## CI 信息 -该项目使用 GitHub Actions 进行持续集成。CI 工作流包括: +该项目使用 GitHub Actions 进行持续集成。CI 工作流程包括: -- 使用 ESLint 对代码进行 linting +- 使用 ESLint 对代码进行检测 - 运行测试(如果适用) - 构建项目 -- 缓存依赖项以加快构建速度 +- 缓存依赖以加快构建速度 ## 贡献 @@ -191,8 +191,8 @@ npx ai-markdown-translator -i example.md -o translated_example.md -l "日语" ## 支持 -如果您遇到任何问题或有任何疑问,请在此代码库中提交问题。 +如果你遇到任何问题或有任何疑问,请在此存储库中提出问题。 --- -这个版本将 `npx` 和独立可执行文件(`./ai-markdown-translator`)的使用示例整合为一个统一的部分。如果您希望进行任何进一步的调整,请告诉我! \ No newline at end of file +此版本将 `npx` 和独立可执行文件(`./ai-markdown-translator`)的用法示例合并为一个统一的部分。如需进一步调整,请告诉我! \ No newline at end of file diff --git a/package.json b/package.json index 4a576d7..572fce9 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "dist/index.js", "type": "module", "scripts": { - "build": "tsc", + "build": "tsc && node ./scripts/copy.js", "start": "node dist/index.js", "lint": "eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", diff --git a/scripts/copy.js b/scripts/copy.js new file mode 100644 index 0000000..f031424 --- /dev/null +++ b/scripts/copy.js @@ -0,0 +1,30 @@ +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +// 将 import.meta.url 转换为文件路径 +const __filename = fileURLToPath(import.meta.url); // 当前脚本的文件路径 +const __dirname = path.dirname(__filename); // 当前文件所在目录 + +const srcDir = path.join(__dirname, '../src'); // 源文件目录 +const distDir = path.join(__dirname, '../dist'); // 目标文件目录 + +// 检查目标目录是否存在,如果不存在则创建 +if (!fs.existsSync(distDir)) { + fs.mkdirSync(distDir, { recursive: true }); // 递归创建目标目录 +} + +// 遍历 src 目录下的所有 Markdown 文件 +const files = fs.readdirSync(srcDir); +files.forEach((file) => { + const filePath = path.join(srcDir, file); + + // 检查是否是 .md 文件 + if (path.extname(file) === '.md') { + const destPath = path.join(distDir, file); // 目标文件路径 + + // 复制文件 + fs.copyFileSync(filePath, destPath); + console.log(`已复制文件 ${file} 到 ${distDir}`); + } +}); diff --git a/src/assistant.md b/src/assistant.md new file mode 100644 index 0000000..01bf3ca --- /dev/null +++ b/src/assistant.md @@ -0,0 +1,199 @@ +### **Frontend Languages** + +#### **HTML** + +```html + + + + + Hello, World! + + + +

Hello, World!

+ + +``` + +#### **CSS** + +```css +/* Set styles for the h1 element in HTML */ +h1 { + color: blue; /* Text color is blue */ + text-align: center; /* Text is centered */ +} +``` + +#### **JavaScript** + +```javascript +// Output "Hello, World!" to the browser's console +console.log('Hello, World!'); +``` + +#### **TypeScript** + +```typescript +// Output "Hello, World!" in TypeScript +let message: string = 'Hello, World!'; // Declare a string variable +console.log(message); // Print to the console +``` + +#### **Vue.js** + +```javascript +// Vue.js usage, display "Hello, World!" on the page +const app = Vue.createApp({ + data() { + return { + message: 'Hello, World!', + }; + }, +}); +app.mount('#app'); +``` + +Corresponding HTML: + +```html +
{{ message }}
+``` + +--- + +### **Backend Languages** + +#### **Node.js (JavaScript)** + +```javascript +// Create a simple server with Node.js and return "Hello, World!" +const http = require('http'); + +// Create server +http + .createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); // Set response header to text + res.end('Hello, World!\n'); // Return "Hello, World!" + }) + .listen(3000); + +console.log('Server running at http://localhost:3000'); +``` + +#### **Python** + +```python +# Output "Hello, World!" to the terminal +print("Hello, World!") +``` + +#### **Django (Python Web Framework)** + +View code: + +```python +from django.http import HttpResponse + +# Define a view function that returns "Hello, World!" +def hello_world(request): + return HttpResponse("Hello, World!") +``` + +#### **Java** + +```java +// Output "Hello, World!" to the terminal +public class Main { + public static void main(String[] args) { + System.out.println("Hello, World!"); // Use standard output + } +} +``` + +#### **Kotlin** + +```kotlin +// Output "Hello, World!" to the terminal +fun main() { + println("Hello, World!") // Print function in Kotlin +} +``` + +#### **PHP** + +```php + +``` + +#### **Ruby** + +```ruby +# Output "Hello, World!" to the terminal +puts "Hello, World!" +``` + +#### **Go** + +```go +// Output "Hello, World!" to the terminal +package main + +import "fmt" + +func main() { + fmt.Println("Hello, World!") // Print string +} +``` + +#### **C#** + +```csharp +// Output "Hello, World!" to the terminal +using System; + +class Program { + static void Main() { + Console.WriteLine("Hello, World!"); // Print string + } +} +``` + +#### **Rust** + +```rust +// Output "Hello, World!" to the terminal +fn main() { + println!("Hello, World!"); // Print to standard output +} +``` + +#### **Swift** + +```swift +// Output "Hello, World!" to the terminal +print("Hello, World!") // Print function in Swift +``` + +#### **PHP Laravel (Backend Framework)** + +Controller example: + +```php +// Return "Hello, World!" in the Laravel framework +Route::get('/', function () { + return 'Hello, World!'; +}); +``` + +--- + +### **SQL** + +```sql +-- Simple query example, returns 'Hello, World!' +SELECT 'Hello, World!'; \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 45efc9f..42a3e00 100644 --- a/src/index.ts +++ b/src/index.ts @@ -8,9 +8,12 @@ import { hideBin } from 'yargs/helpers'; import * as path from 'path'; import * as os from 'os'; import * as glob from 'glob'; +import { fileURLToPath } from 'url'; config(); +const __filename = fileURLToPath(import.meta.url); // 当前脚本的文件路径 +const __dirname = path.dirname(__filename); // 当前文件所在目录 // 添加常量配置 const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB const ALLOWED_CONTENT_TYPES = [ @@ -61,6 +64,11 @@ function writeMarkdownFile(filePath: string, content: string): void { fs.writeFileSync(filePath, content, 'utf-8'); } +async function getFileContent(fileName: string): Promise { + const filePath = path.join(__dirname, fileName); + return fs.readFileSync(filePath, 'utf-8'); +} + async function getDefaultApiKey(): Promise { try { const response = await axios({ @@ -100,11 +108,18 @@ async function translateText( 'Content-Type': 'application/json', }; - const prompt = `将以下文本翻译成${targetLanguage}。请保持Markdown语法不变:\n\n${text}`; - + const prompt = `将以下文本翻译成${targetLanguage}。请保持格式不变:\n\n${text}`; + const systemContent = await getFileContent('system.md'); + const translateContent = await getFileContent('translate.md'); + const assistantContent = await getFileContent('assistant.md'); const data = { model: model, - messages: [{ role: 'user', content: prompt }], + messages: [ + { role: 'system', content: systemContent }, + { role: 'user', content: `请将以下文本翻译成英文。请保持格式不变:\n\n${translateContent}` }, + { role: 'assistant', content: assistantContent }, + { role: 'user', content: prompt }, + ], }; try { const response = await axios.post(openaiUrl, data, { headers }); diff --git a/src/system.md b/src/system.md new file mode 100644 index 0000000..7bbb7da --- /dev/null +++ b/src/system.md @@ -0,0 +1,44 @@ +# Role: 翻译助手 + +你是一个翻译助手,请将用户提供的文本翻译成指定语言。请保持格式不变。 + +## Profile + +- 语言: 中文 +- 翻译语言: 英文 +- 翻译格式: 保持格式不变 + +## Goal + +- 请将用户提供的文本翻译成指定语言。请保持格式不变。 +- 确保翻译后的文本与原文的格式一致。 +- 避免翻译错误,确保翻译的准确性。 +- 保持原有的格式,包括代码块、列表、表格等。 +- 如果原文中包含代码,请将代码中的文字和注释翻译成指定语言。 + +## Skills + +- 精通多种语言的翻译,包括但不限于中文、英文、日文、韩文等。 +- 熟悉多种语言的语法和用法。 +- 熟悉多种语言的翻译格式和习惯。 +- 熟悉多种语言的翻译技巧和方法。 + +## Constraints + +- 请不要翻译代码中的变量名。 +- 请不要翻译代码中的函数名。 +- 请不要翻译代码中的类名。 +- 请不要翻译代码中的模块名。 +- 请不要翻译代码块中的标签。 + +## Workflow + +- 请按照以下步骤进行翻译: + 1. 阅读用户提供的文本。 + 2. 理解用户提供的文本的含义。 + 3. 将用户提供的文本翻译成指定语言。 + 4. 保持原有的格式,包括代码块、列表、表格等。 + +## Instructions + +作为翻译助手。我已经准备好翻译用户提供的文本。 diff --git a/src/translate.md b/src/translate.md new file mode 100644 index 0000000..93f4caf --- /dev/null +++ b/src/translate.md @@ -0,0 +1,200 @@ +### **前端语言** + +#### **HTML** + +```html + + + + + Hello, World! + + + +

Hello, World!

+ + +``` + +#### **CSS** + +```css +/* 为HTML中的h1元素设置样式 */ +h1 { + color: blue; /* 文本颜色为蓝色 */ + text-align: center; /* 文本居中 */ +} +``` + +#### **JavaScript** + +```javascript +// 输出 "Hello, World!" 在浏览器的控制台中 +console.log('Hello, World!'); +``` + +#### **TypeScript** + +```typescript +// TypeScript 中输出 "Hello, World!" +let message: string = 'Hello, World!'; // 声明一个字符串变量 +console.log(message); // 打印到控制台 +``` + +#### **Vue.js** + +```javascript +// Vue.js 用法,显示 "Hello, World!" 到页面 +const app = Vue.createApp({ + data() { + return { + message: 'Hello, World!', + }; + }, +}); +app.mount('#app'); +``` + +对应的 HTML: + +```html +
{{ message }}
+``` + +--- + +### **后端语言** + +#### **Node.js (JavaScript)** + +```javascript +// 使用Node.js创建简单服务器并返回 "Hello, World!" +const http = require('http'); + +// 创建服务器 +http + .createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); // 设置响应头为文本 + res.end('Hello, World!\n'); // 返回 "Hello, World!" + }) + .listen(3000); + +console.log('Server running at http://localhost:3000'); +``` + +#### **Python** + +```python +# 输出 "Hello, World!" 到终端 +print("Hello, World!") +``` + +#### **Django (Python Web Framework)** + +视图代码: + +```python +from django.http import HttpResponse + +# 定义一个视图函数,返回 "Hello, World!" +def hello_world(request): + return HttpResponse("Hello, World!") +``` + +#### **Java** + +```java +// 输出 "Hello, World!" 到终端 +public class Main { + public static void main(String[] args) { + System.out.println("Hello, World!"); // 使用标准输出 + } +} +``` + +#### **Kotlin** + +```kotlin +// 输出 "Hello, World!" 到终端 +fun main() { + println("Hello, World!") // Kotlin 里的打印函数 +} +``` + +#### **PHP** + +```php + +``` + +#### **Ruby** + +```ruby +# 输出 "Hello, World!" 到终端 +puts "Hello, World!" +``` + +#### **Go** + +```go +// 输出 "Hello, World!" 到终端 +package main + +import "fmt" + +func main() { + fmt.Println("Hello, World!") // 打印字符串 +} +``` + +#### **C#** + +```csharp +// 输出 "Hello, World!" 到终端 +using System; + +class Program { + static void Main() { + Console.WriteLine("Hello, World!"); // 打印字符串 + } +} +``` + +#### **Rust** + +```rust +// 输出 "Hello, World!" 到终端 +fn main() { + println!("Hello, World!"); // 打印到标准输出 +} +``` + +#### **Swift** + +```swift +// 输出 "Hello, World!" 到终端 +print("Hello, World!") // Swift 的打印函数 +``` + +#### **PHP Laravel(后端框架)** + +控制器示例: + +```php +// 在 Laravel 框架中返回 "Hello, World!" +Route::get('/', function () { + return 'Hello, World!'; +}); +``` + +--- + +### **SQL** + +```sql +-- 简单查询示例,返回 'Hello, World!' +SELECT 'Hello, World!'; +``` diff --git a/translate/system.md b/translate/system.md new file mode 100644 index 0000000..e42c846 --- /dev/null +++ b/translate/system.md @@ -0,0 +1,44 @@ +# Role: Translation Assistant + +You are a translation assistant. Please translate the text provided by the user into the specified language. Maintain the original format. + +## Profile + +- Language: Chinese +- Target Language: English +- Translation Format: Maintain the original format + +## Goal + +- Translate the text provided by the user into the specified language. Maintain the original format. +- Ensure the translated text is consistent with the format of the original text. +- Avoid translation errors and ensure translation accuracy. +- Retain the original format, including code blocks, lists, tables, etc. +- If the original text includes code, translate the text and comments within the code into the specified language. + +## Skills + +- Proficient in translating multiple languages, including but not limited to Chinese, English, Japanese, Korean, etc. +- Familiar with the grammar and usage of multiple languages. +- Accustomed to translation formats and conventions of various languages. +- Knowledgeable about translation techniques and methods for multiple languages. + +## Constraints + +- Do not translate variable names in the code. +- Do not translate function names in the code. +- Do not translate class names in the code. +- Do not translate module names in the code. +- Do not translate tags within code blocks. + +## Workflow + +- Follow these steps to perform the translation: + 1. Read the text provided by the user. + 2. Understand the meaning of the text provided by the user. + 3. Translate the text provided by the user into the specified language. + 4. Retain the original format, including code blocks, lists, tables, etc. + +## Instructions + +As a translation assistant, I am ready to translate the text provided by the user. \ No newline at end of file