mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-04-19 13:32:24 +00:00
Compare commits
4 commits
21338a9e24
...
3e2c89aa7b
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3e2c89aa7b | ||
![]() |
5a1f035833 | ||
![]() |
9159b8eb21 | ||
![]() |
650a43f826 |
13 changed files with 117 additions and 79 deletions
|
@ -271,6 +271,15 @@ func (t *Tgbot) OnReceive() {
|
|||
if userState, exists := userStates[message.Chat.ID]; exists {
|
||||
switch userState {
|
||||
case "awaiting_id":
|
||||
if client_Id == strings.TrimSpace(message.Text) {
|
||||
t.SendMsgToTgbotDeleteAfter(message.Chat.ID, t.I18nBot("tgbot.messages.using_default_value"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, message.Chat.ID)
|
||||
inbound, _ := t.inboundService.GetInbound(receiver_inbound_ID)
|
||||
message_text, _ := t.BuildInboundClientDataMessage(inbound.Remark, inbound.Protocol)
|
||||
t.addClient(message.Chat.ID, message_text)
|
||||
return
|
||||
}
|
||||
|
||||
client_Id = strings.TrimSpace(message.Text)
|
||||
if t.isSingleWord(client_Id) {
|
||||
userStates[message.Chat.ID] = "awaiting_id"
|
||||
|
@ -285,8 +294,17 @@ func (t *Tgbot) OnReceive() {
|
|||
} else {
|
||||
t.SendMsgToTgbotDeleteAfter(message.Chat.ID, t.I18nBot("tgbot.messages.received_id"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, message.Chat.ID)
|
||||
inbound, _ := t.inboundService.GetInbound(receiver_inbound_ID)
|
||||
message_text, _ := t.BuildInboundClientDataMessage(inbound.Remark, inbound.Protocol)
|
||||
t.addClient(message.Chat.ID, message_text)
|
||||
}
|
||||
case "awaiting_password_tr":
|
||||
if client_TrPassword == strings.TrimSpace(message.Text) {
|
||||
t.SendMsgToTgbotDeleteAfter(message.Chat.ID, t.I18nBot("tgbot.messages.using_default_value"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, message.Chat.ID)
|
||||
return
|
||||
}
|
||||
|
||||
client_TrPassword = strings.TrimSpace(message.Text)
|
||||
if t.isSingleWord(client_TrPassword) {
|
||||
userStates[message.Chat.ID] = "awaiting_password_tr"
|
||||
|
@ -301,8 +319,17 @@ func (t *Tgbot) OnReceive() {
|
|||
} else {
|
||||
t.SendMsgToTgbotDeleteAfter(message.Chat.ID, t.I18nBot("tgbot.messages.received_password"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, message.Chat.ID)
|
||||
inbound, _ := t.inboundService.GetInbound(receiver_inbound_ID)
|
||||
message_text, _ := t.BuildInboundClientDataMessage(inbound.Remark, inbound.Protocol)
|
||||
t.addClient(message.Chat.ID, message_text)
|
||||
}
|
||||
case "awaiting_password_sh":
|
||||
if client_ShPassword == strings.TrimSpace(message.Text) {
|
||||
t.SendMsgToTgbotDeleteAfter(message.Chat.ID, t.I18nBot("tgbot.messages.using_default_value"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, message.Chat.ID)
|
||||
return
|
||||
}
|
||||
|
||||
client_ShPassword = strings.TrimSpace(message.Text)
|
||||
if t.isSingleWord(client_ShPassword) {
|
||||
userStates[message.Chat.ID] = "awaiting_password_sh"
|
||||
|
@ -317,8 +344,17 @@ func (t *Tgbot) OnReceive() {
|
|||
} else {
|
||||
t.SendMsgToTgbotDeleteAfter(message.Chat.ID, t.I18nBot("tgbot.messages.received_password"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, message.Chat.ID)
|
||||
inbound, _ := t.inboundService.GetInbound(receiver_inbound_ID)
|
||||
message_text, _ := t.BuildInboundClientDataMessage(inbound.Remark, inbound.Protocol)
|
||||
t.addClient(message.Chat.ID, message_text)
|
||||
}
|
||||
case "awaiting_email":
|
||||
if client_Email == strings.TrimSpace(message.Text) {
|
||||
t.SendMsgToTgbotDeleteAfter(message.Chat.ID, t.I18nBot("tgbot.messages.using_default_value"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, message.Chat.ID)
|
||||
return
|
||||
}
|
||||
|
||||
client_Email = strings.TrimSpace(message.Text)
|
||||
if t.isSingleWord(client_Email) {
|
||||
userStates[message.Chat.ID] = "awaiting_email"
|
||||
|
@ -333,11 +369,23 @@ func (t *Tgbot) OnReceive() {
|
|||
} else {
|
||||
t.SendMsgToTgbotDeleteAfter(message.Chat.ID, t.I18nBot("tgbot.messages.received_email"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, message.Chat.ID)
|
||||
inbound, _ := t.inboundService.GetInbound(receiver_inbound_ID)
|
||||
message_text, _ := t.BuildInboundClientDataMessage(inbound.Remark, inbound.Protocol)
|
||||
t.addClient(message.Chat.ID, message_text)
|
||||
}
|
||||
case "awaiting_comment":
|
||||
if client_Comment == strings.TrimSpace(message.Text) {
|
||||
t.SendMsgToTgbotDeleteAfter(message.Chat.ID, t.I18nBot("tgbot.messages.using_default_value"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, message.Chat.ID)
|
||||
return
|
||||
}
|
||||
|
||||
client_Comment = strings.TrimSpace(message.Text)
|
||||
t.SendMsgToTgbotDeleteAfter(message.Chat.ID, t.I18nBot("tgbot.messages.received_comment"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, message.Chat.ID)
|
||||
inbound, _ := t.inboundService.GetInbound(receiver_inbound_ID)
|
||||
message_text, _ := t.BuildInboundClientDataMessage(inbound.Remark, inbound.Protocol)
|
||||
t.addClient(message.Chat.ID, message_text)
|
||||
}
|
||||
|
||||
} else {
|
||||
|
@ -1235,18 +1283,8 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool
|
|||
}
|
||||
t.sendCallbackAnswerTgBot(callbackQuery.ID, t.I18nBot("tgbot.buttons.addClient"))
|
||||
t.SendMsgToTgbot(chatId, t.I18nBot("tgbot.answers.chooseInbound"), inbounds)
|
||||
case "add_client_refresh":
|
||||
messageId := callbackQuery.Message.GetMessageID()
|
||||
inbound, err := t.inboundService.GetInbound(receiver_inbound_ID)
|
||||
if err != nil {
|
||||
t.sendCallbackAnswerTgBot(callbackQuery.ID, err.Error())
|
||||
return
|
||||
}
|
||||
message_text, err := t.BuildInboundClientDataMessage(inbound.Remark, inbound.Protocol)
|
||||
|
||||
t.addClient(chatId,message_text,messageId)
|
||||
t.sendCallbackAnswerTgBot(callbackQuery.ID, t.I18nBot("tgbot.answers.clientRefreshSuccess", "Email=="+client_Email))
|
||||
case "add_client_ch_default_email":
|
||||
t.deleteMessageTgBot(chatId, callbackQuery.Message.GetMessageID())
|
||||
userStates[chatId] = "awaiting_email"
|
||||
cancel_btn_markup := tu.InlineKeyboard(
|
||||
tu.InlineKeyboardRow(
|
||||
|
@ -1256,6 +1294,7 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool
|
|||
prompt_message := t.I18nBot("tgbot.messages.email_prompt", "ClientEmail=="+client_Email)
|
||||
t.SendMsgToTgbot(chatId, prompt_message, cancel_btn_markup)
|
||||
case "add_client_ch_default_id":
|
||||
t.deleteMessageTgBot(chatId, callbackQuery.Message.GetMessageID())
|
||||
userStates[chatId] = "awaiting_id"
|
||||
cancel_btn_markup := tu.InlineKeyboard(
|
||||
tu.InlineKeyboardRow(
|
||||
|
@ -1265,6 +1304,7 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool
|
|||
prompt_message := t.I18nBot("tgbot.messages.id_prompt", "ClientId=="+client_Id)
|
||||
t.SendMsgToTgbot(chatId, prompt_message, cancel_btn_markup)
|
||||
case "add_client_ch_default_pass_tr":
|
||||
t.deleteMessageTgBot(chatId, callbackQuery.Message.GetMessageID())
|
||||
userStates[chatId] = "awaiting_password_tr"
|
||||
cancel_btn_markup := tu.InlineKeyboard(
|
||||
tu.InlineKeyboardRow(
|
||||
|
@ -1274,6 +1314,7 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool
|
|||
prompt_message := t.I18nBot("tgbot.messages.pass_prompt", "ClientPassword=="+client_TrPassword)
|
||||
t.SendMsgToTgbot(chatId, prompt_message, cancel_btn_markup)
|
||||
case "add_client_ch_default_pass_sh":
|
||||
t.deleteMessageTgBot(chatId, callbackQuery.Message.GetMessageID())
|
||||
userStates[chatId] = "awaiting_password_sh"
|
||||
cancel_btn_markup := tu.InlineKeyboard(
|
||||
tu.InlineKeyboardRow(
|
||||
|
@ -1283,6 +1324,7 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool
|
|||
prompt_message := t.I18nBot("tgbot.messages.pass_prompt", "ClientPassword=="+client_ShPassword)
|
||||
t.SendMsgToTgbot(chatId, prompt_message, cancel_btn_markup)
|
||||
case "add_client_ch_default_comment":
|
||||
t.deleteMessageTgBot(chatId, callbackQuery.Message.GetMessageID())
|
||||
userStates[chatId] = "awaiting_comment"
|
||||
cancel_btn_markup := tu.InlineKeyboard(
|
||||
tu.InlineKeyboardRow(
|
||||
|
@ -1325,7 +1367,7 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool
|
|||
case "add_client_ch_default_exp":
|
||||
inlineKeyboard := tu.InlineKeyboard(
|
||||
tu.InlineKeyboardRow(
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.cancelReset")).WithCallbackData(t.encodeQuery("add_client_default_traffic_exp")),
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.cancel")).WithCallbackData(t.encodeQuery("add_client_default_traffic_exp")),
|
||||
),
|
||||
tu.InlineKeyboardRow(
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.unlimited")).WithCallbackData(t.encodeQuery("add_client_reset_exp_c 0")),
|
||||
|
@ -1350,11 +1392,16 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool
|
|||
)
|
||||
t.editMessageCallbackTgBot(chatId, callbackQuery.Message.GetMessageID(), inlineKeyboard)
|
||||
case "add_client_default_info":
|
||||
t.deleteMessageTgBot(chatId, callbackQuery.Message.GetMessageID())
|
||||
t.SendMsgToTgbotDeleteAfter(chatId, t.I18nBot("tgbot.messages.using_default_value"), 3, tu.ReplyKeyboardRemove())
|
||||
delete(userStates, chatId)
|
||||
inbound, _ := t.inboundService.GetInbound(receiver_inbound_ID)
|
||||
message_text, _ := t.BuildInboundClientDataMessage(inbound.Remark, inbound.Protocol)
|
||||
t.addClient(chatId, message_text)
|
||||
case "add_client_cancel":
|
||||
delete(userStates, chatId)
|
||||
t.SendMsgToTgbotDeleteAfter(chatId, t.I18nBot("tgbot.messages.cancel"), 5, tu.ReplyKeyboardRemove())
|
||||
t.deleteMessageTgBot(chatId, callbackQuery.Message.GetMessageID())
|
||||
t.SendMsgToTgbotDeleteAfter(chatId, t.I18nBot("tgbot.messages.cancel"), 3, tu.ReplyKeyboardRemove())
|
||||
case "add_client_default_traffic_exp":
|
||||
messageId := callbackQuery.Message.GetMessageID()
|
||||
inbound, err := t.inboundService.GetInbound(receiver_inbound_ID)
|
||||
|
@ -1372,7 +1419,8 @@ func (t *Tgbot) answerCallback(callbackQuery *telego.CallbackQuery, isAdmin bool
|
|||
errorMessage := fmt.Sprintf("%v", err)
|
||||
t.SendMsgToTgbot(chatId, t.I18nBot("tgbot.messages.error_add_client", "error=="+errorMessage), tu.ReplyKeyboardRemove())
|
||||
} else {
|
||||
t.sendCallbackAnswerTgBot(callbackQuery.ID, t.I18nBot("tgbot.answers.successfulOperation"))
|
||||
t.deleteMessageTgBot(chatId, callbackQuery.Message.GetMessageID())
|
||||
t.SendMsgToTgbot(chatId, t.I18nBot("tgbot.answers.successfulOperation"), tu.ReplyKeyboardRemove())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2171,9 +2219,6 @@ func (t *Tgbot) addClient(chatId int64, msg string, messageID ...int) {
|
|||
switch protocol {
|
||||
case model.VMESS, model.VLESS:
|
||||
inlineKeyboard := tu.InlineKeyboard(
|
||||
tu.InlineKeyboardRow(
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.refresh")).WithCallbackData("add_client_refresh"),
|
||||
),
|
||||
tu.InlineKeyboardRow(
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.change_email")).WithCallbackData("add_client_ch_default_email"),
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.change_id")).WithCallbackData("add_client_ch_default_id"),
|
||||
|
@ -2197,9 +2242,6 @@ func (t *Tgbot) addClient(chatId int64, msg string, messageID ...int) {
|
|||
}
|
||||
case model.Trojan:
|
||||
inlineKeyboard := tu.InlineKeyboard(
|
||||
tu.InlineKeyboardRow(
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.refresh")).WithCallbackData("add_client_refresh"),
|
||||
),
|
||||
tu.InlineKeyboardRow(
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.change_email")).WithCallbackData("add_client_ch_default_email"),
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.change_password")).WithCallbackData("add_client_ch_default_pass_tr"),
|
||||
|
@ -2221,12 +2263,8 @@ func (t *Tgbot) addClient(chatId int64, msg string, messageID ...int) {
|
|||
} else {
|
||||
t.SendMsgToTgbot(chatId, msg, inlineKeyboard)
|
||||
}
|
||||
|
||||
case model.Shadowsocks:
|
||||
inlineKeyboard := tu.InlineKeyboard(
|
||||
tu.InlineKeyboardRow(
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.refresh")).WithCallbackData("add_client_refresh"),
|
||||
),
|
||||
tu.InlineKeyboardRow(
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.change_email")).WithCallbackData("add_client_ch_default_email"),
|
||||
tu.InlineKeyboardButton(t.I18nBot("tgbot.buttons.change_password")).WithCallbackData("add_client_ch_default_pass_sh"),
|
||||
|
|
|
@ -582,10 +582,10 @@
|
|||
"yes" = "✅ Yes"
|
||||
"no" = "❌ No"
|
||||
|
||||
"received_id" = "🔑📥 ID updated. Press refresh to see changes."
|
||||
"received_password" = "🔑📥 Password updated. Press refresh to see changes."
|
||||
"received_email" = "📧📥 Email updated. Press refresh to see changes."
|
||||
"received_comment" = "💬📥 Comment updated. Press refresh to see changes."
|
||||
"received_id" = "🔑📥 ID updated."
|
||||
"received_password" = "🔑📥 Password updated."
|
||||
"received_email" = "📧📥 Email updated."
|
||||
"received_comment" = "💬📥 Comment updated."
|
||||
"id_prompt" = "🔑 Default ID: {{ .ClientId }}\n\nEnter your id."
|
||||
"pass_prompt" = "🔑 Default Password: {{ .ClientPassword }}\n\nEnter your password."
|
||||
"email_prompt" = "📧 Default Email: {{ .ClientEmail }}\n\nEnter your email."
|
||||
|
|
|
@ -584,10 +584,10 @@
|
|||
"yes" = "✅ Sí"
|
||||
"no" = "❌ No"
|
||||
|
||||
"received_id" = "🔑📥 ID actualizado. Presiona actualizar para ver los cambios."
|
||||
"received_password" = "🔑📥 Contraseña actualizada. Presiona actualizar para ver los cambios."
|
||||
"received_email" = "📧📥 Correo electrónico actualizado. Presiona actualizar para ver los cambios."
|
||||
"received_comment" = "💬📥 Comentario actualizado. Presiona actualizar para ver los cambios."
|
||||
"received_id" = "🔑📥 ID actualizado."
|
||||
"received_password" = "🔑📥 Contraseña actualizada."
|
||||
"received_email" = "📧📥 Correo electrónico actualizado."
|
||||
"received_comment" = "💬📥 Comentario actualizado."
|
||||
"id_prompt" = "🔑 ID predeterminado: {{ .ClientId }}\n\nIntroduce tu ID."
|
||||
"pass_prompt" = "🔑 Contraseña predeterminada: {{ .ClientPassword }}\n\nIntroduce tu contraseña."
|
||||
"email_prompt" = "📧 Correo electrónico predeterminado: {{ .ClientEmail }}\n\nIntroduce tu correo electrónico."
|
||||
|
|
|
@ -584,10 +584,10 @@
|
|||
"yes" = "✅ بله"
|
||||
"no" = "❌ خیر"
|
||||
|
||||
"received_id" = "🔑📥 شناسه بهروزرسانی شد. برای مشاهده تغییرات، دکمه تازهسازی را فشار دهید."
|
||||
"received_password" = "🔑📥 رمز عبور بهروزرسانی شد. برای مشاهده تغییرات، دکمه تازهسازی را فشار دهید."
|
||||
"received_email" = "📧📥 ایمیل بهروزرسانی شد. برای مشاهده تغییرات، دکمه تازهسازی را فشار دهید."
|
||||
"received_comment" = "💬📥 نظر بهروزرسانی شد. برای مشاهده تغییرات، دکمه تازهسازی را فشار دهید."
|
||||
"received_id" = "🔑📥 شناسه بهروزرسانی شد."
|
||||
"received_password" = "🔑📥 رمز عبور بهروزرسانی شد."
|
||||
"received_email" = "📧📥 ایمیل بهروزرسانی شد."
|
||||
"received_comment" = "💬📥 نظر بهروزرسانی شد."
|
||||
"id_prompt" = "🔑 شناسه پیشفرض: {{ .ClientId }}\n\nشناسه خود را وارد کنید."
|
||||
"pass_prompt" = "🔑 رمز عبور پیشفرض: {{ .ClientPassword }}\n\nرمز عبور خود را وارد کنید."
|
||||
"email_prompt" = "📧 ایمیل پیشفرض: {{ .ClientEmail }}\n\nایمیل خود را وارد کنید."
|
||||
|
|
|
@ -583,10 +583,10 @@
|
|||
"yes" = "✅ Ya"
|
||||
"no" = "❌ Tidak"
|
||||
|
||||
"received_id" = "🔑📥 ID diperbarui. Tekan segarkan untuk melihat perubahan."
|
||||
"received_password" = "🔑📥 Kata sandi diperbarui. Tekan segarkan untuk melihat perubahan."
|
||||
"received_email" = "📧📥 Email diperbarui. Tekan segarkan untuk melihat perubahan."
|
||||
"received_comment" = "💬📥 Komentar diperbarui. Tekan segarkan untuk melihat perubahan."
|
||||
"received_id" = "🔑📥 ID diperbarui."
|
||||
"received_password" = "🔑📥 Kata sandi diperbarui."
|
||||
"received_email" = "📧📥 Email diperbarui."
|
||||
"received_comment" = "💬📥 Komentar diperbarui."
|
||||
"id_prompt" = "🔑 ID Default: {{ .ClientId }}\n\nMasukkan ID Anda."
|
||||
"pass_prompt" = "🔑 Kata Sandi Default: {{ .ClientPassword }}\n\nMasukkan kata sandi Anda."
|
||||
"email_prompt" = "📧 Email Default: {{ .ClientEmail }}\n\nMasukkan email Anda."
|
||||
|
|
|
@ -584,10 +584,10 @@
|
|||
"yes" = "✅ はい"
|
||||
"no" = "❌ いいえ"
|
||||
|
||||
"received_id" = "🔑📥 IDが更新されました。更新ボタンを押して変更を確認してください。"
|
||||
"received_password" = "🔑📥 パスワードが更新されました。更新ボタンを押して変更を確認してください。"
|
||||
"received_email" = "📧📥 メールが更新されました。更新ボタンを押して変更を確認してください。"
|
||||
"received_comment" = "💬📥 コメントが更新されました。更新ボタンを押して変更を確認してください。"
|
||||
"received_id" = "🔑📥 IDが更新されました。"
|
||||
"received_password" = "🔑📥 パスワードが更新されました。"
|
||||
"received_email" = "📧📥 メールが更新されました。"
|
||||
"received_comment" = "💬📥 コメントが更新されました。"
|
||||
"id_prompt" = "🔑 デフォルトID: {{ .ClientId }}\n\nIDを入力してください。"
|
||||
"pass_prompt" = "🔑 デフォルトパスワード: {{ .ClientPassword }}\n\nパスワードを入力してください。"
|
||||
"email_prompt" = "📧 デフォルトメール: {{ .ClientEmail }}\n\nメールを入力してください。"
|
||||
|
|
|
@ -584,10 +584,10 @@
|
|||
"yes" = "✅ Sim"
|
||||
"no" = "❌ Não"
|
||||
|
||||
"received_id" = "🔑📥 ID atualizado. Pressione atualizar para ver as mudanças."
|
||||
"received_password" = "🔑📥 Senha atualizada. Pressione atualizar para ver as mudanças."
|
||||
"received_email" = "📧📥 E-mail atualizado. Pressione atualizar para ver as mudanças."
|
||||
"received_comment" = "💬📥 Comentário atualizado. Pressione atualizar para ver as mudanças."
|
||||
"received_id" = "🔑📥 ID atualizado."
|
||||
"received_password" = "🔑📥 Senha atualizada."
|
||||
"received_email" = "📧📥 E-mail atualizado."
|
||||
"received_comment" = "💬📥 Comentário atualizado."
|
||||
"id_prompt" = "🔑 ID Padrão: {{ .ClientId }}\n\nDigite seu ID."
|
||||
"pass_prompt" = "🔑 Senha Padrão: {{ .ClientPassword }}\n\nDigite sua senha."
|
||||
"email_prompt" = "📧 E-mail Padrão: {{ .ClientEmail }}\n\nDigite seu e-mail."
|
||||
|
|
|
@ -584,10 +584,10 @@
|
|||
"yes" = "✅ Да"
|
||||
"no" = "❌ Нет"
|
||||
|
||||
"received_id" = "🔑📥 ID обновлён. Нажмите обновить, чтобы увидеть изменения."
|
||||
"received_password" = "🔑📥 Пароль обновлён. Нажмите обновить, чтобы увидеть изменения."
|
||||
"received_email" = "📧📥 Электронная почта обновлена. Нажмите обновить, чтобы увидеть изменения."
|
||||
"received_comment" = "💬📥 Комментарий обновлён. Нажмите обновить, чтобы увидеть изменения."
|
||||
"received_id" = "🔑📥 ID обновлён."
|
||||
"received_password" = "🔑📥 Пароль обновлён."
|
||||
"received_email" = "📧📥 Электронная почта обновлена."
|
||||
"received_comment" = "💬📥 Комментарий обновлён."
|
||||
"id_prompt" = "🔑 Стандартный ID: {{ .ClientId }}\n\nВведите ваш ID."
|
||||
"pass_prompt" = "🔑 Стандартный пароль: {{ .ClientPassword }}\n\nВведите ваш пароль."
|
||||
"email_prompt" = "📧 Стандартный email: {{ .ClientEmail }}\n\nВведите ваш email."
|
||||
|
|
|
@ -584,10 +584,10 @@
|
|||
"yes" = "✅ Evet"
|
||||
"no" = "❌ Hayır"
|
||||
|
||||
"received_id" = "🔑📥 Kimlik güncellendi. Değişiklikleri görmek için yenileye basın."
|
||||
"received_password" = "🔑📥 Şifre güncellendi. Değişiklikleri görmek için yenileye basın."
|
||||
"received_email" = "📧📥 E-posta güncellendi. Değişiklikleri görmek için yenileye basın."
|
||||
"received_comment" = "💬📥 Yorum güncellendi. Değişiklikleri görmek için yenileye basın."
|
||||
"received_id" = "🔑📥 Kimlik güncellendi."
|
||||
"received_password" = "🔑📥 Şifre güncellendi."
|
||||
"received_email" = "📧📥 E-posta güncellendi."
|
||||
"received_comment" = "💬📥 Yorum güncellendi."
|
||||
"id_prompt" = "🔑 Varsayılan Kimlik: {{ .ClientId }}\n\nKimliğinizi girin."
|
||||
"pass_prompt" = "🔑 Varsayılan Şifre: {{ .ClientPassword }}\n\nŞifrenizi girin."
|
||||
"email_prompt" = "📧 Varsayılan E-posta: {{ .ClientEmail }}\n\nE-postanızı girin."
|
||||
|
|
|
@ -584,10 +584,10 @@
|
|||
"yes" = "✅ Так"
|
||||
"no" = "❌ Ні"
|
||||
|
||||
"received_id" = "🔑📥 ID оновлено. Натисніть оновити, щоб побачити зміни."
|
||||
"received_password" = "🔑📥 Пароль оновлено. Натисніть оновити, щоб побачити зміни."
|
||||
"received_email" = "📧📥 Електронна пошта оновлена. Натисніть оновити, щоб побачити зміни."
|
||||
"received_comment" = "💬📥 Коментар оновлено. Натисніть оновити, щоб побачити зміни."
|
||||
"received_id" = "🔑📥 ID оновлено."
|
||||
"received_password" = "🔑📥 Пароль оновлено."
|
||||
"received_email" = "📧📥 Електронна пошта оновлена."
|
||||
"received_comment" = "💬📥 Коментар оновлено."
|
||||
"id_prompt" = "🔑 Стандартний ID: {{ .ClientId }}\n\nВведіть ваш ID."
|
||||
"pass_prompt" = "🔑 Стандартний пароль: {{ .ClientPassword }}\n\nВведіть ваш пароль."
|
||||
"email_prompt" = "📧 Стандартний email: {{ .ClientEmail }}\n\nВведіть ваш email."
|
||||
|
|
|
@ -584,10 +584,10 @@
|
|||
"yes" = "✅ Có"
|
||||
"no" = "❌ Không"
|
||||
|
||||
"received_id" = "🔑📥 ID đã được cập nhật. Nhấn làm mới để xem thay đổi."
|
||||
"received_password" = "🔑📥 Mật khẩu đã được cập nhật. Nhấn làm mới để xem thay đổi."
|
||||
"received_email" = "📧📥 Email đã được cập nhật. Nhấn làm mới để xem thay đổi."
|
||||
"received_comment" = "💬📥 Bình luận đã được cập nhật. Nhấn làm mới để xem thay đổi."
|
||||
"received_id" = "🔑📥 ID đã được cập nhật."
|
||||
"received_password" = "🔑📥 Mật khẩu đã được cập nhật."
|
||||
"received_email" = "📧📥 Email đã được cập nhật."
|
||||
"received_comment" = "💬📥 Bình luận đã được cập nhật."
|
||||
"id_prompt" = "🔑 ID mặc định: {{ .ClientId }}\n\nVui lòng nhập ID của bạn."
|
||||
"pass_prompt" = "🔑 Mật khẩu mặc định: {{ .ClientPassword }}\n\nVui lòng nhập mật khẩu của bạn."
|
||||
"email_prompt" = "📧 Email mặc định: {{ .ClientEmail }}\n\nVui lòng nhập email của bạn."
|
||||
|
|
|
@ -584,10 +584,10 @@
|
|||
"yes" = "✅ 是的"
|
||||
"no" = "❌ 没有"
|
||||
|
||||
"received_id" = "🔑📥 ID 已更新。请按刷新查看更改。"
|
||||
"received_password" = "🔑📥 密码已更新。请按刷新查看更改。"
|
||||
"received_email" = "📧📥 邮箱已更新。请按刷新查看更改。"
|
||||
"received_comment" = "💬📥 评论已更新。请按刷新查看更改。"
|
||||
"received_id" = "🔑📥 ID 已更新。"
|
||||
"received_password" = "🔑📥 密码已更新。"
|
||||
"received_email" = "📧📥 邮箱已更新。"
|
||||
"received_comment" = "💬📥 评论已更新。"
|
||||
"id_prompt" = "🔑 默认 ID: {{ .ClientId }}\n\n请输入您的 ID。"
|
||||
"pass_prompt" = "🔑 默认密码: {{ .ClientPassword }}\n\n请输入您的密码。"
|
||||
"email_prompt" = "📧 默认邮箱: {{ .ClientEmail }}\n\n请输入您的邮箱。"
|
||||
|
|
|
@ -584,10 +584,10 @@
|
|||
"yes" = "✅ 是的"
|
||||
"no" = "❌ 沒有"
|
||||
|
||||
"received_id" = "🔑📥 ID 已更新。請按刷新查看變更。"
|
||||
"received_password" = "🔑📥 密碼已更新。請按刷新查看變更。"
|
||||
"received_email" = "📧📥 電子郵件已更新。請按刷新查看變更。"
|
||||
"received_comment" = "💬📥 評論已更新。請按刷新查看變更。"
|
||||
"received_id" = "🔑📥 ID 已更新。"
|
||||
"received_password" = "🔑📥 密碼已更新。"
|
||||
"received_email" = "📧📥 電子郵件已更新。"
|
||||
"received_comment" = "💬📥 評論已更新。"
|
||||
"id_prompt" = "🔑 預設 ID: {{ .ClientId }}\n\n請輸入您的 ID。"
|
||||
"pass_prompt" = "🔑 預設密碼: {{ .ClientPassword }}\n\n請輸入您的密碼。"
|
||||
"email_prompt" = "📧 預設電子郵件: {{ .ClientEmail }}\n\n請輸入您的電子郵件。"
|
||||
|
|
Loading…
Reference in a new issue