Add language selection with '/l(anguage)' command
WIP. Needs a way to save user's choice. Usage: /l or /language - Let user select the language he wants his message to translate to. When triggered, bot will send an inline keyboard message with a list of available langauges. For an example of an inline keyboard message, see https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating.
Showing
1 changed file
with
65 additions
and
0 deletions
... | @@ -137,3 +137,68 @@ bot.onText(/^\/(t|translate)($| ((.|\n)+))/, (msg, match) => { | ... | @@ -137,3 +137,68 @@ bot.onText(/^\/(t|translate)($| ((.|\n)+))/, (msg, match) => { |
137 | translate(received_msg, chatId); | 137 | translate(received_msg, chatId); |
138 | } | 138 | } |
139 | }); | 139 | }); |
140 | + | ||
141 | +// /l(anguage) | ||
142 | +// Let user select the language he wants his message to translate to. | ||
143 | +// When triggered, bot will send an inline keyboard message with a list | ||
144 | +// of available langauges. For an example of an inline keyboard message, | ||
145 | +// see https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating. | ||
146 | +bot.onText(/^\/(l|anguage)/, (msg, match) => { | ||
147 | + const chatId = msg.chat.id; | ||
148 | + const msgId = msg.message_id; | ||
149 | + | ||
150 | + const inlineKeyboard = { | ||
151 | + inline_keyboard: [ | ||
152 | + // Languages supported by papago language detection | ||
153 | + // One array per line | ||
154 | + [ | ||
155 | + { text: '한국어', callback_data: 'ko' }, | ||
156 | + { text: '영어', callback_data: 'en' }, | ||
157 | + { text: '일본어', callback_data: 'ja' } | ||
158 | + ], | ||
159 | + [ | ||
160 | + { text: '중국어 간체', callback_data: 'zh-cn' }, | ||
161 | + { text: '중국어 번체', callback_data: 'zh-tw' } | ||
162 | + ], | ||
163 | + [ | ||
164 | + { text: '힌디어', callback_data: 'hi' }, | ||
165 | + { text: '스페인어', callback_data: 'es' }, | ||
166 | + { text: '프랑스어', callback_data: 'fr' } | ||
167 | + ], | ||
168 | + [ | ||
169 | + { text: '독일어', callback_data: 'de' }, | ||
170 | + { text: '포루트갈어', callback_data: 'pt' }, | ||
171 | + { text: '베트남어', callback_data: 'vi' } | ||
172 | + ], | ||
173 | + [ | ||
174 | + { text: '인도네시아어', callback_data: 'id' }, | ||
175 | + { text: '페르시아어', callback_data: 'fa' } | ||
176 | + ], | ||
177 | + [ | ||
178 | + { text: '아랍어', callback_data: 'ar' }, | ||
179 | + { text: '미얀마어', callback_data: 'mm' }, | ||
180 | + { text: '태국어', callback_data: 'th' } | ||
181 | + ], | ||
182 | + [ | ||
183 | + { text: '러시아어', callback_data: 'ru' }, | ||
184 | + { text: '이탈리아어', callback_data: 'it' } | ||
185 | + ], | ||
186 | + ] | ||
187 | + } | ||
188 | + const options = { | ||
189 | + reply_to_message_id: msgId, | ||
190 | + reply_markup: inlineKeyboard | ||
191 | + } | ||
192 | + | ||
193 | + bot.sendMessage(chatId, '무슨 언어로 번역할까요? 선택은 기억됩니다.', options); | ||
194 | +}); | ||
195 | + | ||
196 | +bot.on('callback_query', (query) => { | ||
197 | + const data = query.data; | ||
198 | + | ||
199 | + const options = { | ||
200 | + text: 'From now on, your messages will be translated into ' + data | ||
201 | + } | ||
202 | + | ||
203 | + bot.answerCallbackQuery(query.id, options); | ||
204 | +}); | ... | ... |
-
Please register or login to post a comment