Giter VIP home page Giter VIP logo

evil0ctal / chatgpt-minecraft-plugin-translater Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 0.0 51 KB

用于将Minecraft Java服务器插件的配置yml文件翻译成不同的语言并且保持插件或游戏的保留关键字,基于OpenAI的ChatGPT 3.5模型以及内置中文和英文两套提示词,开箱即用,准确率99%,支持大型文件的拆分以及合并,支持批量处理多个文件。

License: Apache License 2.0

Python 100.00%
ai chatgpt minecraft minecraft-plugin minecraft-server plugin plugin-translation translation translator yaml

chatgpt-minecraft-plugin-translater's Introduction

Minecraft 插件配置文件ChatGPT翻译工具 🌐

自述文档语言: English | 简体中文

这是什么? 🤔

这个工具能够帮助您将Minecraft Java服务器插件的配置yml文件翻译成不同的语言。它基于OpenAI的ChatGPT 3.5模型,并内置了中文和英文两套提示词,开箱即用,准确率高达99%。此外,它还支持大型文件的拆分与合并,以及批量处理文件,提高您的工作效率,大型yaml文件的处理使用PKVPM算法来对文件进行拆分和合并,具体实现请参考:多态键值路径映射(PKVPM-Polymorphic Key-Value Path Mapping)

功能特点 🚀

  • 高准确率翻译:基于OpenAI ChatGPT 3.5模型,准确率达99%。
  • 多语言支持:内置中文和英文提示词,支持更多语言的翻译。
  • 大型文件处理:支持大型文件的拆分与合并(使用PKVPM算法)。
  • 批量文件处理:一次性处理多个配置文件。
  • 用户友好:简单易用,开箱即用。

使用指南 📖

  1. 准备工作

    • 确保您的系统已安装Python 3.6或更高版本。
    • 安装必要的Python库:pip install -r requirements.txt
  2. 设置OpenAI API密钥

    • 访问OpenAI API获取您的API密钥。
    • 在脚本中配置您的API密钥,或在运行脚本后输入你的API密钥。
  3. 运行脚本

    • python3 main.py
    • 删除下面两个目录内的残留测试文件
    • 将单个或多个yml配置文件放入指定的输入文件夹Input_Files
    • 执行脚本,查看输出文件夹Output_Files
  4. 检查翻译结果

    • 翻译完成后,检查输出文件夹中的文件。
    • 确认翻译结果符合预期。
  5. 切换语言(可选)

  • 默认的输出语言为: 英文 -> 中文

main.py中编辑可以进行切换原始语言和目标语言:

# 你可以在这自定义输出语言/You can customize the output language here
output_language = "Simplified Chinese"

# Use English as the output language
# output_language = "English"

测试对比 👁‍🗨

原始yml文件(英文),来自DeluxeMenus插件。

menu_title: '&8Vip Skill Tree | &6Baker'
open_command:
- jobs skilltree Baker vip
- job skilltree Baker vip
size: 45
open_requirement:
  minimum_requirements: 1
  stop_at_success: true
  requirements:
    perm1:
     type: has permission
     permission: 'jobs.all.vipmaxlevel'
    perm2:
     type: has permission
     permission: 'jobs.baker.vipmaxlevel'
update_interval: 1
items:
################## VIP Skill Tree Levels
  '2':
    material: red_stained_glass
    slot: 4
    priority: 3
    display_name: '&4&nLevel 1'
    hide_attributes: true
    lore:
    - '&cAttention! Rewards can only be claimed'
    - '&cafter you level up to the shown level.'
    - ''
    - '&6Rewards:'
    - '&#eb984e➟ &a&l$&a150'
    - '&#eb984e➟ &d1.5&d&lXP &dboost for 2h'
    - '&#eb984e➟ &e0.5&e&lP &eboost for 2h'
    left_click_commands:
    - '[refresh]'
    right_click_commands:
    - '[refresh]'
  '3':
    material: lime_stained_glass
    slot: 4
    priority: 2
    view_requirement:
      requirements:
        claimed:
         type: has permission
         permission: 'jobs.vipbaker.level1'
    display_name: '&a&nLevel 1'
    hide_attributes: true
    lore:
    - '&7Reward has been claimed.'
    - ''
    - '&6Rewards:'
    - '&#eb984e➟ &a&l$&a150'
    - '&#eb984e➟ &d1.5&d&lXP &dboost for 2h'
    - '&#eb984e➟ &e0.5&e&lP &eboost for 2h'
    left_click_commands:
    - '[refresh]'
    right_click_commands:
    - '[refresh]'
  '4':
    material: orange_stained_glass
    slot: 4
    priority: 1
    update: true
    view_requirement:
      requirements:
        level:
         type: javascript
         expression: "%jobsr_user_jlevel_Baker% >= 1"
        perm:
         type: "!has permission"
         permission: 'jobs.vipbaker.level1'
    display_name: '&#e67e22&nLevel 1'
    hide_attributes: true
    lore:
    - '&aClick to claim your reward!'
    - ''
    - '&6Rewards:'
    - '&#eb984e➟ &a&l$&a150'
    - '&#eb984e➟ &d1.5&d&lXP &dboost for 2h'
    - '&#eb984e➟ &e0.5&e&lP &eboost for 2h'
    left_click_commands:
    - '[console] lp user %player_name% permission set jobs.vipbaker.level1'
    - '[console] eco give %player_name% 150'
    - '[console] lp user %player_name% permission settemp jobs.boost.Baker.exp.1.5 true 2h'
    - '[console] lp user %player_name% permission settemp jobs.boost.Baker.points.0.5 true 2h'
    - '[close]'

输出文件(中文)

menu_title: '&8Vip技能树 | &6面包师'
open_command:
- jobs skilltree Baker vip
- job skilltree Baker vip
size: 45
open_requirement:
  minimum_requirements: 1
  stop_at_success: true
  requirements:
    perm1:
     type: has permission
     permission: 'jobs.all.vipmaxlevel'
    perm2:
     type: has permission
     permission: 'jobs.baker.vipmaxlevel'
update_interval: 1
items:
################## VIP技能树等级
  '2':
    material: red_stained_glass
    slot: 4
    priority: 3
    display_name: '&4&n等级 1'
    hide_attributes: true
    lore:
    - '&c注意!奖励只能在达到所示等级后领取。'
    - ''
    - '&6奖励:'
    - '&#eb984e➟ &a&l$&a150'
    - '&#eb984e➟ &d1.5&d&l经验提升2小时'
    - '&#eb984e➟ &e0.5&e&l点数提升2小时'
    left_click_commands:
    - '[refresh]'
    right_click_commands:
    - '[refresh]'
  '3':
    material: lime_stained_glass
    slot: 4
    priority: 2
    view_requirement:
      requirements:
        claimed:
         type: has permission
         permission: 'jobs.vipbaker.level1'
    display_name: '&a&n等级 1'
    hide_attributes: true
    lore:
    - '&7奖励已领取。'
    - ''
    - '&6奖励:'
    - '&#eb984e➟ &a&l$&a150'
    - '&#eb984e➟ &d1.5&d&l经验提升2小时'
    - '&#eb984e➟ &e0.5&e&l点数提升2小时'
    left_click_commands:
    - '[refresh]'
    right_click_commands:
    - '[refresh]'
  '4':
    material: orange_stained_glass
    slot: 4
    priority: 1
    update: true
    view_requirement:
      requirements:
        level:
         type: javascript
         expression: "%jobsr_user_jlevel_Baker% >= 1"
        perm:
         type: "!has permission"
         permission: 'jobs.vipbaker.level1'
    display_name: '&#e67e22&n等级 1'
    hide_attributes: true
    lore:
    - '&a点击以领取奖励!'
    - ''
    - '&6奖励:'
    - '&#eb984e➟ &a&l$&a150'
    - '&#eb984e➟ &d1.5&d&l经验提升2小时'
    - '&#eb984e➟ &e0.5&e&l点数提升2小时'
    left_click_commands:
    - '[console] lp user %player_name% permission set jobs.vipbaker.level1'
    - '[console] eco give %player_name% 150'
    - '[console] lp user %player_name% permission settemp jobs.boost.Baker.exp.1.5 true 2h'
    - '[console] lp user %player_name% permission settemp jobs.boost.Baker.points.0.5 true 2h'
    - '[close]'

注意事项 ⚠️

  • 翻译结果可能需要手动审核,以确保专业术语和上下文的准确性。
  • 大型文件处理可能需要较长时间,具体取决于文件大小和系统性能。
  • 修改main.py以限制Token的使用数量,默认最大Token为10240

联系方式 📧

如果您在使用过程中遇到任何问题,或者有任何建议,欢迎通过以下方式联系我们:

我们非常欢迎社区的反馈和贡献!

如果这个项目对你有帮助,不妨给个⭐️支持一下吧!

chatgpt-minecraft-plugin-translater's People

Contributors

evil0ctal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

chatgpt-minecraft-plugin-translater's Issues

求大佬解答 0.0

输入路径是文件夹,开始批量处理...
Input path is a directory, start batch processing...
当前正在处理文件:config.yml
Currently processing file: config.yml
文件内容长度98003超过最大长度1024,开始使用PKVPM算法拆分内容...
File content length 98003 exceeds the maximum length 1024, start splitting the content using PKVPM algorithm...
原始文件内容长度:98003
共拆分为38部分进行翻译
翻译第1部分...
Translating the 1 part...
第1部分翻译失败:Error code: 401 - {'error': {'message': 'Incorrect API key provided: sk-zk25838f6. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}
如果再次失败,请检查文件内容。
The 1 part of the translation failed: Error code: 401 - {'error': {'message': 'Incorrect API key provided: sk-zk258
38f6. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}
If it fails again, please check the file content.
Traceback (most recent call last):
File "C:\Users\11610\Desktop\ChatGPT-Minecraft-Plugin-Translater-main\main.py", line 274, in
main(_output_language=output_language,
File "C:\Users\11610\Desktop\ChatGPT-Minecraft-Plugin-Translater-main\main.py", line 236, in main
translated_count = process_directory(_input_path, _model, _output_language, _max_tokens, _output_path, log_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\11610\Desktop\ChatGPT-Minecraft-Plugin-Translater-main\main.py", line 218, in process_directory
process_file(file_path, _model, _output_language, _max_tokens, output_folder, log_path)
File "C:\Users\11610\Desktop\ChatGPT-Minecraft-Plugin-Translater-main\main.py", line 173, in process_file
translated_part = openai_interact(prompt=_prompt, part=part, model=_model, max_tokens=_max_tokens)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\11610\Desktop\ChatGPT-Minecraft-Plugin-Translater-main\main.py", line 73, in openai_interact
response = client.chat.completions.create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\11610\AppData\Local\Programs\Python\Python312\Lib\site-packages\openai_utils_utils.py", line 275, in wrapper
return func(args, kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\11610\AppData\Local\Programs\Python\Python312\Lib\site-packages\openai\resources\chat\completions.py", line 663, in create
return self._post(
^^^^^^^^^^^
File "C:\Users\11610\AppData\Local\Programs\Python\Python312\Lib\site-packages\openai_base_client.py", line 1200, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\11610\AppData\Local\Programs\Python\Python312\Lib\site-packages\openai_base_client.py", line 889, in request
return self._request(
^^^^^^^^^^^^^^
File "C:\Users\11610\AppData\Local\Programs\Python\Python312\Lib\site-packages\openai_base_client.py", line 980, in _request
raise self._make_status_error_from_response(err.response) from None
openai.AuthenticationError: Error code: 401 - {'error': {'message': 'Incorrect API key provided: sk-zk258
************************************38f6. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.