Translation Service

- Added translation service with 3 services.
- MyMemory (Free no api key needed but 1000 words a day and Skow)
- Deepl (Free with API key, 500000 words a month and fast)
- Libre Translate (Paid unless you host your own server, open source)
- Added caching for Quick Access and the translate service to speed up the UI. Can be fast depending on the service you use/ PC specs and etc).
This commit is contained in:
Yusarina
2025-08-07 13:58:40 +01:00
parent c28cfe1d1d
commit 61c77cf756
10 changed files with 3018 additions and 12 deletions
+70 -2
View File
@@ -554,6 +554,74 @@
"Language.ko_KR": "Korean",
"Language.changed.title": "Language Changed",
"Language.changed.success": "Language changed successfully!",
"Language.changed.restart": "Some UI elements may require restarting Blender"
}
"Language.changed.restart": "Some UI elements may require restarting Blender",
"Translation.label": "Translation",
"Translation.service": "Translation Service",
"Translation.service_desc": "Choose the translation service to use",
"Translation.mode": "Translation Mode",
"Translation.mode_desc": "Select how translation should work",
"Translation.mode.hybrid": "Hybrid (Dictionary + API)",
"Translation.mode.hybrid_desc": "Try dictionary first, then use API service as fallback",
"Translation.mode.dictionary_only": "Dictionary Only",
"Translation.mode.dictionary_only_desc": "Only use built-in dictionaries for translation",
"Translation.mode.api_only": "API Only",
"Translation.mode.api_only_desc": "Only use online translation services",
"Translation.service_settings": "Translation Service",
"Translation.language_settings": "Language Settings",
"Translation.quick_actions": "Quick Actions",
"Translation.utilities": "Utilities",
"Translation.advanced_settings": "Advanced Settings",
"Translation.source_language": "Source Language",
"Translation.source_language_desc": "Language to translate from",
"Translation.target_language": "Target Language",
"Translation.target_language_desc": "Language to translate to",
"Translation.translate_names": "Translate Names",
"Translation.translate_names_desc": "Translate names using the selected service and settings",
"Translation.test_service": "Test Service",
"Translation.test_service_desc": "Test the currently selected translation service",
"Translation.clear_cache": "Clear Cache",
"Translation.clear_cache_desc": "Clear all cached translations",
"Translation.show_stats": "Show Statistics",
"Translation.show_stats_desc": "Show translation statistics and information",
"Translation.no_armature": "No armature selected",
"Translation.test_failed": "Translation service test failed - check configuration",
"Translation.cache_cleared": "Translation cache cleared successfully",
"Translation.mymemory_info": "MyMemory is completely free with no API key required. Provides 1000 translations per day.",
"Translation.service.mymemory": "MyMemory (Free)",
"Translation.service.mymemory_desc": "Completely free service - no API key needed!",
"Translation.service.libretranslate": "LibreTranslate",
"Translation.service.libretranslate_desc": "Configurable server - can be self-hosted",
"Translation.service.deepl": "DeepL",
"Translation.service.deepl_desc": "High-quality translations - API key required",
"Translation.type.bones": "Bones",
"Translation.type.bones_desc": "Translate bone names",
"Translation.type.shapekeys": "Shape Keys",
"Translation.type.shapekeys_desc": "Translate shape key names",
"Translation.type.materials": "Materials",
"Translation.type.materials_desc": "Translate material names",
"Translation.type.objects": "Objects",
"Translation.type.objects_desc": "Translate object names",
"Translation.type.all": "All",
"Translation.type.all_desc": "Translate all supported types",
"Translation.configure_deepl": "Configure DeepL API",
"Translation.configure_deepl_desc": "Configure DeepL translation service API key",
"Translation.deepl_api_key": "DeepL API Key",
"Translation.deepl_api_key_desc": "Your DeepL API key (get free key at deepl.com/pro)",
"Translation.configure_libretranslate": "Configure LibreTranslate Server",
"Translation.configure_libretranslate_desc": "Configure LibreTranslate translation service server URL",
"Translation.server_url": "Server URL",
"Translation.server_url_desc": "LibreTranslate server URL (e.g., https://your-server.com)",
"Translation.api_key": "API Key",
"Translation.api_key_desc": "API key for LibreTranslate server (optional for some servers)",
"VRM.remove_colliders": "Remove Colliders",
"VRM.remove_colliders_desc": "Remove VRM collider bones during conversion",
"VRM.remove_root": "Remove Root Bone",
"VRM.remove_root_desc": "Remove unnecessary VRM root bone and make Hips the root bone",
"Visemes.no_meshes": "No meshes found",
"TextureAtlas.search_materials": "Search Materials",
"TextureAtlas.search_materials_desc": "Filter materials by name"
}
}
+69 -1
View File
@@ -537,6 +537,74 @@
"Language.ko_KR": "韓国語",
"Language.changed.title": "言語が変更されました",
"Language.changed.success": "言語が正常に変更されました!",
"Language.changed.restart": "一部のUI要素はBlenderの再起動が必要な場合があります"
"Language.changed.restart": "一部のUI要素はBlenderの再起動が必要な場合があります",
"Translation.label": "翻訳",
"Translation.service": "翻訳サービス",
"Translation.service_desc": "使用する翻訳サービスを選択",
"Translation.mode": "翻訳モード",
"Translation.mode_desc": "翻訳の動作方法を選択",
"Translation.mode.hybrid": "ハイブリッド(辞書 + API",
"Translation.mode.hybrid_desc": "まず辞書を試し、その後APIサービスをフォールバックとして使用",
"Translation.mode.dictionary_only": "辞書のみ",
"Translation.mode.dictionary_only_desc": "翻訳には組み込み辞書のみを使用",
"Translation.mode.api_only": "APIのみ",
"Translation.mode.api_only_desc": "オンライン翻訳サービスのみを使用",
"Translation.service_settings": "翻訳サービス",
"Translation.language_settings": "言語設定",
"Translation.quick_actions": "クイックアクション",
"Translation.utilities": "ユーティリティ",
"Translation.advanced_settings": "詳細設定",
"Translation.source_language": "ソース言語",
"Translation.source_language_desc": "翻訳元の言語",
"Translation.target_language": "ターゲット言語",
"Translation.target_language_desc": "翻訳先の言語",
"Translation.translate_names": "名前を翻訳",
"Translation.translate_names_desc": "選択したサービスと設定を使用して名前を翻訳",
"Translation.test_service": "サービスをテスト",
"Translation.test_service_desc": "現在選択されている翻訳サービスをテスト",
"Translation.clear_cache": "キャッシュをクリア",
"Translation.clear_cache_desc": "すべてのキャッシュされた翻訳をクリア",
"Translation.show_stats": "統計を表示",
"Translation.show_stats_desc": "翻訳統計と情報を表示",
"Translation.no_armature": "アーマチュアが選択されていません",
"Translation.test_failed": "翻訳サービステストが失敗しました - 設定を確認してください",
"Translation.cache_cleared": "翻訳キャッシュが正常にクリアされました",
"Translation.mymemory_info": "MyMemoryは完全に無料でAPIキー不要です。1日1000回の翻訳を提供します。",
"Translation.service.mymemory": "MyMemory(無料)",
"Translation.service.mymemory_desc": "完全に無料のサービス - APIキー不要!",
"Translation.service.libretranslate": "LibreTranslate",
"Translation.service.libretranslate_desc": "設定可能なサーバー - セルフホスト可能",
"Translation.service.deepl": "DeepL",
"Translation.service.deepl_desc": "高品質な翻訳 - APIキーが必要",
"Translation.type.bones": "ボーン",
"Translation.type.bones_desc": "ボーン名を翻訳",
"Translation.type.shapekeys": "シェイプキー",
"Translation.type.shapekeys_desc": "シェイプキー名を翻訳",
"Translation.type.materials": "マテリアル",
"Translation.type.materials_desc": "マテリアル名を翻訳",
"Translation.type.objects": "オブジェクト",
"Translation.type.objects_desc": "オブジェクト名を翻訳",
"Translation.type.all": "すべて",
"Translation.type.all_desc": "サポートされているすべてのタイプを翻訳",
"Translation.configure_deepl": "DeepL APIを設定",
"Translation.configure_deepl_desc": "DeepL翻訳サービスAPIキーを設定",
"Translation.deepl_api_key": "DeepL APIキー",
"Translation.deepl_api_key_desc": "あなたのDeepL APIキー(deepl.com/proで無料キーを取得)",
"Translation.configure_libretranslate": "LibreTranslateサーバーを設定",
"Translation.configure_libretranslate_desc": "LibreTranslate翻訳サービスサーバーURLを設定",
"Translation.server_url": "サーバーURL",
"Translation.server_url_desc": "LibreTranslateサーバーURL(例:https://your-server.com",
"Translation.api_key": "APIキー",
"Translation.api_key_desc": "LibreTranslateサーバー用のAPIキー(一部のサーバーでは任意)",
"VRM.remove_colliders": "コライダーを削除",
"VRM.remove_colliders_desc": "変換中にVRMコライダーボーンを削除",
"VRM.remove_root": "ルートボーンを削除",
"VRM.remove_root_desc": "不要なVRMルートボーンを削除し、ヒップをルートボーンにする",
"Visemes.no_meshes": "メッシュが見つかりません",
"TextureAtlas.search_materials": "マテリアルを検索",
"TextureAtlas.search_materials_desc": "名前でマテリアルをフィルタリング"
}
}
+69 -1
View File
@@ -537,6 +537,74 @@
"Language.ko_KR": "한국어",
"Language.changed.title": "언어 변경됨",
"Language.changed.success": "언어가 성공적으로 변경되었습니다!",
"Language.changed.restart": "일부 UI 요소는 블렌더를 다시 시작해야 할 수 있습니다"
"Language.changed.restart": "일부 UI 요소는 블렌더를 다시 시작해야 할 수 있습니다",
"Translation.label": "번역",
"Translation.service": "번역 서비스",
"Translation.service_desc": "사용할 번역 서비스 선택",
"Translation.mode": "번역 모드",
"Translation.mode_desc": "번역 동작 방식 선택",
"Translation.mode.hybrid": "하이브리드 (사전 + API)",
"Translation.mode.hybrid_desc": "먼저 사전을 시도하고, 그 다음 API 서비스를 폴백으로 사용",
"Translation.mode.dictionary_only": "사전만",
"Translation.mode.dictionary_only_desc": "번역에 내장 사전만 사용",
"Translation.mode.api_only": "API만",
"Translation.mode.api_only_desc": "온라인 번역 서비스만 사용",
"Translation.service_settings": "번역 서비스",
"Translation.language_settings": "언어 설정",
"Translation.quick_actions": "빠른 작업",
"Translation.utilities": "유틸리티",
"Translation.advanced_settings": "고급 설정",
"Translation.source_language": "소스 언어",
"Translation.source_language_desc": "번역할 원본 언어",
"Translation.target_language": "대상 언어",
"Translation.target_language_desc": "번역할 대상 언어",
"Translation.translate_names": "이름 번역",
"Translation.translate_names_desc": "선택한 서비스와 설정을 사용하여 이름 번역",
"Translation.test_service": "서비스 테스트",
"Translation.test_service_desc": "현재 선택된 번역 서비스 테스트",
"Translation.clear_cache": "캐시 지우기",
"Translation.clear_cache_desc": "모든 캐시된 번역 지우기",
"Translation.show_stats": "통계 표시",
"Translation.show_stats_desc": "번역 통계 및 정보 표시",
"Translation.no_armature": "선택된 아마추어 없음",
"Translation.test_failed": "번역 서비스 테스트 실패 - 구성을 확인하세요",
"Translation.cache_cleared": "번역 캐시가 성공적으로 지워졌습니다",
"Translation.mymemory_info": "MyMemory는 API 키 없이 완전히 무료입니다. 하루 1000회 번역을 제공합니다.",
"Translation.service.mymemory": "MyMemory (무료)",
"Translation.service.mymemory_desc": "완전히 무료 서비스 - API 키 불필요!",
"Translation.service.libretranslate": "LibreTranslate",
"Translation.service.libretranslate_desc": "구성 가능한 서버 - 셀프 호스팅 가능",
"Translation.service.deepl": "DeepL",
"Translation.service.deepl_desc": "고품질 번역 - API 키 필요",
"Translation.type.bones": "본",
"Translation.type.bones_desc": "본 이름 번역",
"Translation.type.shapekeys": "쉐이프 키",
"Translation.type.shapekeys_desc": "쉐이프 키 이름 번역",
"Translation.type.materials": "재질",
"Translation.type.materials_desc": "재질 이름 번역",
"Translation.type.objects": "객체",
"Translation.type.objects_desc": "객체 이름 번역",
"Translation.type.all": "모두",
"Translation.type.all_desc": "지원되는 모든 유형 번역",
"Translation.configure_deepl": "DeepL API 구성",
"Translation.configure_deepl_desc": "DeepL 번역 서비스 API 키 구성",
"Translation.deepl_api_key": "DeepL API 키",
"Translation.deepl_api_key_desc": "당신의 DeepL API 키 (deepl.com/pro에서 무료 키 획득)",
"Translation.configure_libretranslate": "LibreTranslate 서버 구성",
"Translation.configure_libretranslate_desc": "LibreTranslate 번역 서비스 서버 URL 구성",
"Translation.server_url": "서버 URL",
"Translation.server_url_desc": "LibreTranslate 서버 URL (예: https://your-server.com)",
"Translation.api_key": "API 키",
"Translation.api_key_desc": "LibreTranslate 서버용 API 키 (일부 서버는 선택사항)",
"VRM.remove_colliders": "콜라이더 제거",
"VRM.remove_colliders_desc": "변환 중 VRM 콜라이더 본 제거",
"VRM.remove_root": "루트 본 제거",
"VRM.remove_root_desc": "불필요한 VRM 루트 본을 제거하고 힙을 루트 본으로 설정",
"Visemes.no_meshes": "메시를 찾을 수 없음",
"TextureAtlas.search_materials": "재질 검색",
"TextureAtlas.search_materials_desc": "이름으로 재질 필터링"
}
}