-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmulti_lang.py
166 lines (148 loc) · 8.97 KB
/
multi_lang.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# ZundaGPT2
#
# 言語サポート
#
# Copyright (c) 2024-2025 led-mirage
# このソースコードは MITライセンス の下でライセンスされています。
# ライセンスの詳細については、このプロジェクトのLICENSEファイルを参照してください。
import textwrap
# テキストリソースの定義
text_resources = {
# 日本語
"ja": {
"ERROR_MISSING_OPENAI_API_KEY": "環境変数 OPENAI_API_KEY が設定されていません。",
"ERROR_MISSING_AZURE_OPENAI_ENDPOINT": "環境変数 AZURE_OPENAI_ENDPOINT が設定されていません。",
"ERROR_MISSING_AZURE_OPENAI_API_KEY": "環境変数 AZURE_OPENAI_API_KEY が設定されていません。",
"ERROR_MISSING_GEMINI_API_KEY": "環境変数 GEMINI_API_KEY が設定されていません。",
"ERROR_MISSING_ANTHROPIC_API_KEY": "環境変数 ANTHROPIC_API_KEY が設定されていません。",
"ERROR_API_ID_IS_INCORRECT": "API IDが間違っています。",
"ERROR_API_TIMEOUT": "APIの呼び出しがタイムアウトしたのだ",
"ERROR_API_AUTHENTICATION_FAILED": "APIの認証に失敗したのだ",
"ERROR_API_ENDPOINT_INCORRECT": "APIのエンドポイントが間違っているのだ",
"ERROR_CONVERSATION_CONTENT_INAPPROPRIATE": "会話の内容が不適切だと判断されたのだ",
"ERROR_RATE_LIMIT_REACHED": "レート制限に達したのだ",
"ERROR_API_ERROR_OCCURRED": "APIエラーが発生したのだ",
"ERROR_UNKNOWN_OCCURED": "なんかわからないエラーが発生したのだ",
"ERROR_GOOGLETTS_FFMPEG_NOT_FOUND": "Google Text-to-Speechを使用するには、あらかじめFFmpegをインストールしておく必要があります\n\nFFmpegをインストールしてパスを通しておいてください",
"SUMMARIZE_PROMPT": textwrap.dedent("""\
以下のチャット会話を分かりやすく要約してください。
【出力形式】
- タイトル(h2):会話の主題を端的に表現
- ジャンル(h3):会話の分類を一言で
- 要点(h3):箇条書き
- まとめ(h3):会話の結論や決定事項を簡潔に
【制約事項】
- マークダウン形式で出力
- 重要なキーワードは**強調**
- 技術的な用語は`コードスタイル`で表示
---
"""),
},
# 英語
"en": {
"ERROR_MISSING_OPENAI_API_KEY": "The environment variable OPENAI_API_KEY is not set.",
"ERROR_MISSING_AZURE_OPENAI_ENDPOINT": "The environment variable AZURE_OPENAI_ENDPOINT is not set.",
"ERROR_MISSING_AZURE_OPENAI_API_KEY": "The environment variable AZURE_OPENAI_API_KEY is not set.",
"ERROR_MISSING_GEMINI_API_KEY": "The environment variable GEMINI_API_KEY is not set.",
"ERROR_MISSING_ANTHROPIC_API_KEY": "The environment variable ANTHROPIC_API_KEY is not set.",
"ERROR_API_ID_IS_INCORRECT": "API ID is incorrect.",
"ERROR_API_TIMEOUT": "The API call timed out.",
"ERROR_API_AUTHENTICATION_FAILED": "Failed to authenticate the API.",
"ERROR_API_ENDPOINT_INCORRECT": "The API endpoint is incorrect.",
"ERROR_CONVERSATION_CONTENT_INAPPROPRIATE": "The content of the conversation was deemed inappropriate.",
"ERROR_RATE_LIMIT_REACHED": "Rate limit reached.",
"ERROR_API_ERROR_OCCURRED": "An API error occurred.",
"ERROR_UNKNOWN_OCCURED": "An unknown error has occurred.",
"ERROR_GOOGLETTS_FFMPEG_NOT_FOUND": "To use Google Text-to-Speech, you need to install FFmpeg beforehand.\n\nPlease install FFmpeg and ensure that it is added to the system path.",
"SUMMARIZE_PROMPT": textwrap.dedent("""\
Please summarize the following chat conversation clearly and concisely.
[Output Format]
- Title (h2): Briefly express the topic of the conversation
- Genre (h3): Classify the conversation in one word
- Key Points (h3): Bullet points
- Summary (h3): A concise conclusion or decision point from the conversation
[Constraints]
- Output in Markdown format
- Highlight important keywords with **
- Display technical terms in `code style`
---
"""),
},
# フィンランド語
"fi": {
"ERROR_MISSING_OPENAI_API_KEY": "Ympäristömuuttujaa OPENAI_API_KEY ei ole asetettu.",
"ERROR_MISSING_AZURE_OPENAI_ENDPOINT": "Ympäristömuuttujaa AZURE_OPENAI_ENDPOINT ei ole asetettu.",
"ERROR_MISSING_AZURE_OPENAI_API_KEY": "Ympäristömuuttujaa AZURE_OPENAI_API_KEY ei ole asetettu.",
"ERROR_MISSING_GEMINI_API_KEY": "Ympäristömuuttujaa GEMINI_API_KEY ei ole asetettu.",
"ERROR_MISSING_ANTHROPIC_API_KEY": "Ympäristömuuttujaa ANTHROPIC_API_KEY ei ole asetettu.",
"ERROR_API_ID_IS_INCORRECT": "API-tunnus on virheellinen.",
"ERROR_API_TIMEOUT": "API-kutsu aikakatkaistiin.",
"ERROR_API_AUTHENTICATION_FAILED": "API:n todennus epäonnistui.",
"ERROR_API_ENDPOINT_INCORRECT": "API:n päätepiste on virheellinen.",
"ERROR_CONVERSATION_CONTENT_INAPPROPRIATE": "Keskustelun sisältö todettiin sopimattomaksi.",
"ERROR_RATE_LIMIT_REACHED": "Nopeusraja on saavutettu.",
"ERROR_API_ERROR_OCCURRED": "API-virhe tapahtui.",
"ERROR_UNKNOWN_OCCURED": "Tapahtui tuntematon virhe.",
"ERROR_GOOGLETTS_FFMPEG_NOT_FOUND": "Google Text-to-Speech -toiminnon käyttö edellyttää FFmpeg-asennusta etukäteen.\n\nAsenna FFmpeg ja varmista, että se on lisätty järjestelmäpolkuun.",
"SUMMARIZE_PROMPT": textwrap.dedent("""\
Tiivistä seuraava keskustelu selkeästi ja ytimekkäästi.
[Output Format]
- Otsikko (h2): Kuvaa keskustelun aihe lyhyesti
- Genre (h3): Luokittele keskustelu yhdellä sanalla
- Avainkohdat (h3): Luettelomerkit
- Yhteenveto (h3): Ytimekäs johtopäätös tai päätöspiste keskustelusta
[Constraints]
- Tulosta Markdown-muodossa
- Korosta tärkeitä avainsanoja **
- Näytä tekniset termit `koodityylillä`
---
"""),
},
# スペイン語語
"es": {
"ERROR_MISSING_OPENAI_API_KEY": "La variable de entorno OPENAI_API_KEY no está configurada.",
"ERROR_MISSING_AZURE_OPENAI_ENDPOINT": "La variable de entorno AZURE_OPENAI_ENDPOINT no está configurada.",
"ERROR_MISSING_AZURE_OPENAI_API_KEY": "La variable de entorno AZURE_OPENAI_API_KEY no está configurada.",
"ERROR_MISSING_GEMINI_API_KEY": "La variable de entorno GEMINI_API_KEY no está configurada.",
"ERROR_MISSING_ANTHROPIC_API_KEY": "La variable de entorno ANTHROPIC_API_KEY no está configurada.",
"ERROR_API_ID_IS_INCORRECT": "El ID de la API es incorrecto.",
"ERROR_API_TIMEOUT": "La llamada a la API se agotó.",
"ERROR_API_AUTHENTICATION_FAILED": "Falló la autenticación de la API.",
"ERROR_API_ENDPOINT_INCORRECT": "El endpoint de la API es incorrecto.",
"ERROR_CONVERSATION_CONTENT_INAPPROPRIATE": "El contenido de la conversación fue considerado inapropiado.",
"ERROR_RATE_LIMIT_REACHED": "Se alcanzó el límite de solicitudes.",
"ERROR_API_ERROR_OCCURRED": "Ocurrió un error en la API.",
"ERROR_UNKNOWN_OCCURED": "Ocurrió un error desconocido.",
"ERROR_GOOGLETTS_FFMPEG_NOT_FOUND": "Para usar Google Text-to-Speech, necesitas instalar FFmpeg previamente.\n\nPor favor, instala FFmpeg y asegúrate de que se haya agregado a la ruta del sistema.",
"SUMMARIZE_PROMPT": textwrap.dedent("""\
Por favor, resume la siguiente conversación de chat de manera clara y concisa.
[Formato de Salida]
- Título (h2): Expresa brevemente el tema de la conversación
- Género (h3): Clasifica la conversación en una palabra
- Puntos Clave (h3): Viñetas
- Resumen (h3): Una conclusión o decisión concisa derivada de la conversación
[Restricciones]
- Salida en formato Markdown
- Resalta las palabras clave importantes con **
- Muestra los términos técnicos en estilo `código`
---
"""),
}
}
# 現在の言語を保存する変数
current_language = "ja"
# 言語を設定する関数
def set_current_language(language):
global current_language
current_language = language
if language in text_resources:
current_language = language
else:
print(f"Warning: '{language}' is not a valid language code. Defaulting to 'en'.")
current_language = "en"
# テキストリソースを取得する関数
def get_text_resource(key, lang=None):
language = current_language
if lang is not None and lang in text_resources:
language = lang
return text_resources.get(language, {}).get(key, key)