From 3dd873505493fc020c9d6959f296feb4de1f76f6 Mon Sep 17 00:00:00 2001 From: Gabriel Jablonski Date: Tue, 3 Feb 2026 10:14:56 -0300 Subject: [PATCH] fix: update whatsapp available template languages for CSAT (#207) --- .../settingsPage/CustomerSatisfactionPage.vue | 7 +- .../settingsPage/whatsappTemplateLanguages.js | 122 ++++++++++++++++++ 2 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/whatsappTemplateLanguages.js diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/CustomerSatisfactionPage.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/CustomerSatisfactionPage.vue index f730f62f1..18be11ffa 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/CustomerSatisfactionPage.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/CustomerSatisfactionPage.vue @@ -17,7 +17,7 @@ import NextButton from 'dashboard/components-next/button/Button.vue'; import Switch from 'next/switch/Switch.vue'; import Input from 'dashboard/components-next/input/Input.vue'; import ComboBox from 'dashboard/components-next/combobox/ComboBox.vue'; -import languages from 'dashboard/components/widgets/conversation/advancedFilterItems/languages.js'; +import whatsappTemplateLanguages from './whatsappTemplateLanguages.js'; import ConfirmTemplateUpdateDialog from './components/ConfirmTemplateUpdateDialog.vue'; const props = defineProps({ @@ -80,7 +80,10 @@ const labelOptions = computed(() => ); const languageOptions = computed(() => - languages.map(({ name, id }) => ({ label: `${name} (${id})`, value: id })) + whatsappTemplateLanguages.map(({ name, id }) => ({ + label: `${name} (${id})`, + value: id, + })) ); const messagePreviewData = computed(() => ({ diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/whatsappTemplateLanguages.js b/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/whatsappTemplateLanguages.js new file mode 100644 index 000000000..a11bbdd13 --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/settingsPage/whatsappTemplateLanguages.js @@ -0,0 +1,122 @@ +/** + * WhatsApp Business API supported languages for message templates. + * These codes differ from standard ISO 639-1 codes and must be used when + * creating WhatsApp templates via the Business Management API. + * + * @see https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/supported-languages/ + */ +const whatsappTemplateLanguages = [ + { name: 'Afrikaans', id: 'af' }, + { name: 'Albanian', id: 'sq' }, + { name: 'Arabic', id: 'ar' }, + { name: 'Arabic (EGY)', id: 'ar_EG' }, + { name: 'Arabic (UAE)', id: 'ar_AE' }, + { name: 'Arabic (LBN)', id: 'ar_LB' }, + { name: 'Arabic (MAR)', id: 'ar_MA' }, + { name: 'Arabic (QAT)', id: 'ar_QA' }, + { name: 'Azerbaijani', id: 'az' }, + { name: 'Belarusian', id: 'be_BY' }, + { name: 'Bengali', id: 'bn' }, + { name: 'Bengali (IND)', id: 'bn_IN' }, + { name: 'Bulgarian', id: 'bg' }, + { name: 'Catalan', id: 'ca' }, + { name: 'Chinese (CHN)', id: 'zh_CN' }, + { name: 'Chinese (HKG)', id: 'zh_HK' }, + { name: 'Chinese (TAI)', id: 'zh_TW' }, + { name: 'Croatian', id: 'hr' }, + { name: 'Czech', id: 'cs' }, + { name: 'Danish', id: 'da' }, + { name: 'Dari', id: 'prs_AF' }, + { name: 'Dutch', id: 'nl' }, + { name: 'Dutch (BEL)', id: 'nl_BE' }, + { name: 'English', id: 'en' }, + { name: 'English (UK)', id: 'en_GB' }, + { name: 'English (US)', id: 'en_US' }, + { name: 'English (UAE)', id: 'en_AE' }, + { name: 'English (AUS)', id: 'en_AU' }, + { name: 'English (CAN)', id: 'en_CA' }, + { name: 'English (GHA)', id: 'en_GH' }, + { name: 'English (IRL)', id: 'en_IE' }, + { name: 'English (IND)', id: 'en_IN' }, + { name: 'English (JAM)', id: 'en_JM' }, + { name: 'English (MYS)', id: 'en_MY' }, + { name: 'English (NZL)', id: 'en_NZ' }, + { name: 'English (QAT)', id: 'en_QA' }, + { name: 'English (SGP)', id: 'en_SG' }, + { name: 'English (UGA)', id: 'en_UG' }, + { name: 'English (ZAF)', id: 'en_ZA' }, + { name: 'Estonian', id: 'et' }, + { name: 'Filipino', id: 'fil' }, + { name: 'Finnish', id: 'fi' }, + { name: 'French', id: 'fr' }, + { name: 'French (BEL)', id: 'fr_BE' }, + { name: 'French (CAN)', id: 'fr_CA' }, + { name: 'French (CHE)', id: 'fr_CH' }, + { name: 'French (CIV)', id: 'fr_CI' }, + { name: 'French (MAR)', id: 'fr_MA' }, + { name: 'Georgian', id: 'ka' }, + { name: 'German', id: 'de' }, + { name: 'German (AUT)', id: 'de_AT' }, + { name: 'German (CHE)', id: 'de_CH' }, + { name: 'Greek', id: 'el' }, + { name: 'Gujarati', id: 'gu' }, + { name: 'Hausa', id: 'ha' }, + { name: 'Hebrew', id: 'he' }, + { name: 'Hindi', id: 'hi' }, + { name: 'Hungarian', id: 'hu' }, + { name: 'Indonesian', id: 'id' }, + { name: 'Irish', id: 'ga' }, + { name: 'Italian', id: 'it' }, + { name: 'Japanese', id: 'ja' }, + { name: 'Kannada', id: 'kn' }, + { name: 'Kazakh', id: 'kk' }, + { name: 'Kinyarwanda', id: 'rw_RW' }, + { name: 'Korean', id: 'ko' }, + { name: 'Kyrgyz (Kyrgyzstan)', id: 'ky_KG' }, + { name: 'Lao', id: 'lo' }, + { name: 'Latvian', id: 'lv' }, + { name: 'Lithuanian', id: 'lt' }, + { name: 'Macedonian', id: 'mk' }, + { name: 'Malay', id: 'ms' }, + { name: 'Malayalam', id: 'ml' }, + { name: 'Marathi', id: 'mr' }, + { name: 'Norwegian', id: 'nb' }, + { name: 'Pashto', id: 'ps_AF' }, + { name: 'Persian', id: 'fa' }, + { name: 'Polish', id: 'pl' }, + { name: 'Portuguese (BR)', id: 'pt_BR' }, + { name: 'Portuguese (POR)', id: 'pt_PT' }, + { name: 'Punjabi', id: 'pa' }, + { name: 'Romanian', id: 'ro' }, + { name: 'Russian', id: 'ru' }, + { name: 'Serbian', id: 'sr' }, + { name: 'Sinhala', id: 'si_LK' }, + { name: 'Slovak', id: 'sk' }, + { name: 'Slovenian', id: 'sl' }, + { name: 'Spanish', id: 'es' }, + { name: 'Spanish (ARG)', id: 'es_AR' }, + { name: 'Spanish (CHL)', id: 'es_CL' }, + { name: 'Spanish (COL)', id: 'es_CO' }, + { name: 'Spanish (CRI)', id: 'es_CR' }, + { name: 'Spanish (DOM)', id: 'es_DO' }, + { name: 'Spanish (ECU)', id: 'es_EC' }, + { name: 'Spanish (HND)', id: 'es_HN' }, + { name: 'Spanish (MEX)', id: 'es_MX' }, + { name: 'Spanish (PAN)', id: 'es_PA' }, + { name: 'Spanish (PER)', id: 'es_PE' }, + { name: 'Spanish (SPA)', id: 'es_ES' }, + { name: 'Spanish (URY)', id: 'es_UY' }, + { name: 'Swahili', id: 'sw' }, + { name: 'Swedish', id: 'sv' }, + { name: 'Tamil', id: 'ta' }, + { name: 'Telugu', id: 'te' }, + { name: 'Thai', id: 'th' }, + { name: 'Turkish', id: 'tr' }, + { name: 'Ukrainian', id: 'uk' }, + { name: 'Urdu', id: 'ur' }, + { name: 'Uzbek', id: 'uz' }, + { name: 'Vietnamese', id: 'vi' }, + { name: 'Zulu', id: 'zu' }, +]; + +export default whatsappTemplateLanguages;