Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ type Config struct {
Enable bool `public:"true" info:"Enables sending and processing of Voice and SMS messages through the Twilio notification provider."`

VoiceName string `info:"The Twilio voice to use for Text To Speech for phone calls. See https://www.twilio.com/docs/voice/twiml/say/text-speech#polly-standard-and-neural-voices"`
VoiceLanguage string `info:"The Twilio voice language to use for Text To Speech for phone calls. See https://www.twilio.com/docs/voice/twiml/say/text-speech#polly-standard-and-neural-voices"`
VoiceLanguage string `info:"The Twilio voice language to use for Text To Speech for phone calls. It also selects the spoken language of GoAlert's call prompts when a translation is available (otherwise English is used). See https://www.twilio.com/docs/voice/twiml/say/text-speech#polly-standard-and-neural-voices"`

AccountSID string
AuthToken string `password:"true" info:"The primary Auth Token for Twilio. Must be primary unless Alternate Auth Token is set. This token is used for outgoing requests."`
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ require (
golang.org/x/oauth2 v0.36.0
golang.org/x/sys v0.45.0
golang.org/x/term v0.43.0
golang.org/x/text v0.37.0
google.golang.org/grpc v1.81.1
google.golang.org/protobuf v1.36.11
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
Expand Down Expand Up @@ -186,7 +187,6 @@ require (
golang.org/x/net v0.54.0 // indirect
golang.org/x/sync v0.20.0 // indirect
golang.org/x/telemetry v0.0.0-20260428171046-76f71b9afea0 // indirect
golang.org/x/text v0.37.0 // indirect
golang.org/x/tools v0.44.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260504160031-60b97b32f348 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260504160031-60b97b32f348 // indirect
Expand Down
2 changes: 1 addition & 1 deletion graphql2/mapconfig.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 56 additions & 0 deletions notification/twilio/messages_ar.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package twilio

import "golang.org/x/text/language"

// Arabic voice translations. Registered under the base language tag so every
// regional variant (ar-EG, ar-KW, ar-LB, ar-MA, ar-SA) resolves to it.
//
// Placeholders (%s, %d) must appear in the same order as the English source
// string. Keys must match those in voiceKeys exactly.
func init() {
registerVoiceMessages(language.Arabic, map[string]string{
// menu options
"To confirm unenrollment of this number, press %s.": "لتأكيد إلغاء تسجيل هذا الرقم، اضغط %s.",
"To go back to the previous menu, press %s.": "للعودة إلى القائمة السابقة، اضغط %s.",
"To disable voice notifications to this number, press %s.": "لتعطيل الإشعارات الصوتية إلى هذا الرقم، اضغط %s.",
"To repeat this message, press star.": "لتكرار هذه الرسالة، اضغط على النجمة.",
"To acknowledge, press %s.": "للإقرار، اضغط %s.",
"To escalate, press %s.": "للتصعيد، اضغط %s.",
"To close, press %s.": "للإغلاق، اضغط %s.",
"To acknowledge all, press %s.": "للإقرار بالكل، اضغط %s.",
"To close all, press %s.": "لإغلاق الكل، اضغط %s.",
// general prompts
"If you are done, you may simply hang up.": "إذا انتهيت، يمكنك ببساطة إنهاء المكالمة.",
"Sorry, I didn't understand that.": "عذرًا، لم أفهم ذلك.",
"Goodbye.": "مع السلامة.",
// call flow
"Hello! This is %s": "مرحبًا! هذه %s",
"Hello! This is %s. ": "مرحبًا! هذه %s. ",
"Please use the application dashboard to manage alerts.": "يرجى استخدام لوحة تحكم التطبيق لإدارة التنبيهات.",
"Unenrolled.": "تم إلغاء التسجيل.",
"One moment please.": "لحظة من فضلك.",
"An error has occurred. Please use the dashboard to manage alerts.": "حدث خطأ. يرجى استخدام لوحة التحكم لإدارة التنبيهات.",
"The menu options have changed. To acknowledge, press %s.": "تغيرت خيارات القائمة. للإقرار، اضغط %s.",
"The menu options have changed. To close, press %s.": "تغيرت خيارات القائمة. للإغلاق، اضغط %s.",
// action confirmations
"Acknowledged": "تم الإقرار",
"Acknowledged all alerts.": "تم الإقرار بجميع التنبيهات.",
"Closed": "تم الإغلاق",
"Closed all alerts.": "تم إغلاق جميع التنبيهات.",
"Escalation requested": "تم طلب التصعيد",
"Escalation requested all alerts.": "تم طلب التصعيد لجميع التنبيهات.",
// error messages
"Already %s": "بالفعل %s",
"Alert is already closed.": "التنبيه مغلق بالفعل.",
"Alert is already acknowledged.": "تم الإقرار بالتنبيه بالفعل.",
"Error: %s": "خطأ: %s",
"System error. Please visit the dashboard.": "خطأ في النظام. يرجى زيارة لوحة التحكم.",
// buildMessage templates
"%s with alert notifications. Service '%s' has %d unacknowledged alerts.": "%s مع إشعارات التنبيه. الخدمة '%s' لديها %d تنبيهات لم يتم الإقرار بها.",
"%s with an alert notification. %s.": "%s مع إشعار تنبيه. %s.",
"%s with a status update for alert '%s'. %s": "%s مع تحديث حالة للتنبيه '%s'. %s",
"%s with a test message.": "%s مع رسالة اختبار.",
"%s with your %d-digit verification code. The code is: %s. Again, your %d-digit verification code is: %s.": "%s مع رمز التحقق المكون من %d أرقام. الرمز هو: %s. مرة أخرى، رمز التحقق المكون من %d أرقام هو: %s.",
"No summary provided": "لم يتم تقديم ملخص",
})
}
56 changes: 56 additions & 0 deletions notification/twilio/messages_bg.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package twilio

import "golang.org/x/text/language"

// Bulgarian voice translations. Registered under the base language tag so the
// regional variant (bg-BG) resolves to it.
//
// Placeholders (%s, %d) must appear in the same order as the English source
// string. Keys must match those in voiceKeys exactly.
func init() {
registerVoiceMessages(language.Bulgarian, map[string]string{
// menu options
"To confirm unenrollment of this number, press %s.": "За да потвърдите премахването на този номер, натиснете %s.",
"To go back to the previous menu, press %s.": "За да се върнете към предишното меню, натиснете %s.",
"To disable voice notifications to this number, press %s.": "За да изключите гласовите известия за този номер, натиснете %s.",
"To repeat this message, press star.": "За да повторите това съобщение, натиснете звездичка.",
"To acknowledge, press %s.": "За да потвърдите, натиснете %s.",
"To escalate, press %s.": "За да ескалирате, натиснете %s.",
"To close, press %s.": "За да затворите, натиснете %s.",
"To acknowledge all, press %s.": "За да потвърдите всички, натиснете %s.",
"To close all, press %s.": "За да затворите всички, натиснете %s.",
// general prompts
"If you are done, you may simply hang up.": "Ако сте готови, можете просто да затворите.",
"Sorry, I didn't understand that.": "Съжалявам, не разбрах.",
"Goodbye.": "Довиждане.",
// call flow
"Hello! This is %s": "Здравейте! Това е %s",
"Hello! This is %s. ": "Здравейте! Това е %s. ",
"Please use the application dashboard to manage alerts.": "Моля, използвайте таблото на приложението, за да управлявате сигналите.",
"Unenrolled.": "Премахнато.",
"One moment please.": "Един момент, моля.",
"An error has occurred. Please use the dashboard to manage alerts.": "Възникна грешка. Моля, използвайте таблото, за да управлявате сигналите.",
"The menu options have changed. To acknowledge, press %s.": "Опциите в менюто се промениха. За да потвърдите, натиснете %s.",
"The menu options have changed. To close, press %s.": "Опциите в менюто се промениха. За да затворите, натиснете %s.",
// action confirmations
"Acknowledged": "Потвърдено",
"Acknowledged all alerts.": "Всички сигнали са потвърдени.",
"Closed": "Затворено",
"Closed all alerts.": "Всички сигнали са затворени.",
"Escalation requested": "Заявена ескалация",
"Escalation requested all alerts.": "Заявена ескалация за всички сигнали.",
// error messages
"Already %s": "Вече %s",
"Alert is already closed.": "Сигналът вече е затворен.",
"Alert is already acknowledged.": "Сигналът вече е потвърден.",
"Error: %s": "Грешка: %s",
"System error. Please visit the dashboard.": "Системна грешка. Моля, посетете таблото.",
// buildMessage templates
"%s with alert notifications. Service '%s' has %d unacknowledged alerts.": "%s с известия за сигнали. Услугата „%s“ има %d непотвърдени сигнала.",
"%s with an alert notification. %s.": "%s с известие за сигнал. %s.",
"%s with a status update for alert '%s'. %s": "%s с актуализация на състоянието за сигнал „%s“. %s",
"%s with a test message.": "%s с тестово съобщение.",
"%s with your %d-digit verification code. The code is: %s. Again, your %d-digit verification code is: %s.": "%s с вашия %d-цифрен код за потвърждение. Кодът е: %s. Отново, вашият %d-цифрен код за потвърждение е: %s.",
"No summary provided": "Няма предоставено резюме",
})
}
56 changes: 56 additions & 0 deletions notification/twilio/messages_ceb.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package twilio

import "golang.org/x/text/language"

// Cebuano voice translations. Registered under the base language tag so the
// regional variant (ceb-PH) resolves to it.
//
// Placeholders (%s, %d) must appear in the same order as the English source
// string. Keys must match those in voiceKeys exactly.
func init() {
registerVoiceMessages(language.Make("ceb"), map[string]string{
// menu options
"To confirm unenrollment of this number, press %s.": "Aron makumpirma ang pagtangtang niini nga numero, pislita ang %s.",
"To go back to the previous menu, press %s.": "Aron mobalik sa miaging menu, pislita ang %s.",
"To disable voice notifications to this number, press %s.": "Aron i-disable ang mga voice notification niini nga numero, pislita ang %s.",
"To repeat this message, press star.": "Aron usbon kini nga mensahe, pislita ang star.",
"To acknowledge, press %s.": "Aron i-acknowledge, pislita ang %s.",
"To escalate, press %s.": "Aron i-escalate, pislita ang %s.",
"To close, press %s.": "Aron isira, pislita ang %s.",
"To acknowledge all, press %s.": "Aron i-acknowledge ang tanan, pislita ang %s.",
"To close all, press %s.": "Aron isira ang tanan, pislita ang %s.",
// general prompts
"If you are done, you may simply hang up.": "Kung nahuman ka na, mahimo ka lang nga mag-hang up.",
"Sorry, I didn't understand that.": "Pasayloa ko, wala ko makasabot niana.",
"Goodbye.": "Babay.",
// call flow
"Hello! This is %s": "Maayong adlaw! Kini si %s",
"Hello! This is %s. ": "Maayong adlaw! Kini si %s. ",
"Please use the application dashboard to manage alerts.": "Palihug gamita ang dashboard sa aplikasyon aron madumala ang mga alerto.",
"Unenrolled.": "Natangtang na.",
"One moment please.": "Palihug, kadiyot lang.",
"An error has occurred. Please use the dashboard to manage alerts.": "Adunay sayop nga nahitabo. Palihug gamita ang dashboard aron madumala ang mga alerto.",
"The menu options have changed. To acknowledge, press %s.": "Nausab ang mga opsyon sa menu. Aron i-acknowledge, pislita ang %s.",
"The menu options have changed. To close, press %s.": "Nausab ang mga opsyon sa menu. Aron isira, pislita ang %s.",
// action confirmations
"Acknowledged": "Na-acknowledge",
"Acknowledged all alerts.": "Na-acknowledge ang tanan nga alerto.",
"Closed": "Sirado",
"Closed all alerts.": "Gisira ang tanan nga alerto.",
"Escalation requested": "Gihangyo ang escalation",
"Escalation requested all alerts.": "Gihangyo ang escalation sa tanan nga alerto.",
// error messages
"Already %s": "%s na",
"Alert is already closed.": "Sirado na ang alerto.",
"Alert is already acknowledged.": "Na-acknowledge na ang alerto.",
"Error: %s": "Sayop: %s",
"System error. Please visit the dashboard.": "Sayop sa sistema. Palihug bisitaha ang dashboard.",
// buildMessage templates
"%s with alert notifications. Service '%s' has %d unacknowledged alerts.": "%s nga adunay mga notipikasyon sa alerto. Ang serbisyo nga '%s' adunay %d ka alerto nga wala pa ma-acknowledge.",
"%s with an alert notification. %s.": "%s nga adunay notipikasyon sa alerto. %s.",
"%s with a status update for alert '%s'. %s": "%s nga adunay update sa kahimtang sa alerto nga '%s'. %s",
"%s with a test message.": "%s nga adunay test nga mensahe.",
"%s with your %d-digit verification code. The code is: %s. Again, your %d-digit verification code is: %s.": "%s nga adunay imong %d ka digit nga verification code. Ang code mao ang: %s. Usab, ang imong %d ka digit nga verification code mao ang: %s.",
"No summary provided": "Walay summary nga gihatag",
})
}
Loading
Loading