diff --git a/check_login.php b/check_login.php
index 240a1a28..22597dcf 100644
--- a/check_login.php
+++ b/check_login.php
@@ -69,6 +69,7 @@
$session_company_name = $row['company_name'];
$session_company_country = $row['company_country'];
+ $session_company_locale = $row['company_locale'];
$session_company_currency = $row['company_currency'];
include("get_settings.php");
@@ -89,6 +90,6 @@
$num_alerts = $row['num'];
//Set Currency Format
- $currency_format = numfmt_create('en-US', NumberFormatter::CURRENCY);
+ $currency_format = numfmt_create($session_company_locale, NumberFormatter::CURRENCY);
?>
\ No newline at end of file
diff --git a/companies.php b/companies.php
index b2f7cb25..3c1a126b 100644
--- a/companies.php
+++ b/companies.php
@@ -92,6 +92,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()"));
$company_email = $row['company_email'];
$company_website = $row['company_website'];
$company_logo = $row['company_logo'];
+ $company_locale = $row['company_locale'];
$company_currency = $row['company_currency'];
$company_initials = initials($company_name);
diff --git a/company_add_modal.php b/company_add_modal.php
index 527188a1..210c1359 100644
--- a/company_add_modal.php
+++ b/company_add_modal.php
@@ -105,6 +105,21 @@
+
diff --git a/cron.php b/cron.php
index dd12375d..28597ba9 100644
--- a/cron.php
+++ b/cron.php
@@ -20,6 +20,7 @@ while($row = mysqli_fetch_array($sql_companies)){
$company_phone = formatPhoneNumber($row['company_phone']);
$company_email = $row['company_email'];
$company_website = $row['company_website'];
+ $company_locale = $row['company_locale'];
$config_enable_cron = $row['config_enable_cron'];
$config_invoice_overdue_reminders = $row['config_invoice_overdue_reminders'];
$config_invoice_prefix = $row['config_invoice_prefix'];
@@ -32,18 +33,18 @@ while($row = mysqli_fetch_array($sql_companies)){
$config_recurring_auto_send_invoice = $row['config_recurring_auto_send_invoice'];
$config_base_url = $row['config_base_url'];
- //Set Currency Format
- $currency_format = numfmt_create('en-US', NumberFormatter::CURRENCY);
-
- //Tickets
+ // Tickets
$config_ticket_prefix = $row['config_ticket_prefix'];
$config_ticket_next_number = $row['config_ticket_next_number'];
+ // Set Currency Format
+ $currency_format = numfmt_create($company_locale, NumberFormatter::CURRENCY);
+
if($config_enable_cron == 1){
- //GET ALERTS
+ // GET ALERTS
- //DOMAINS EXPIRING
+ // DOMAINS EXPIRING
$domainAlertArray = [1,7,14,30,90,120];
@@ -69,7 +70,7 @@ while($row = mysqli_fetch_array($sql_companies)){
}
- //CERTIFICATES EXPIRING
+ // CERTIFICATES EXPIRING
$certificateAlertArray = [1,7,14,30,90,120];
@@ -96,7 +97,7 @@ while($row = mysqli_fetch_array($sql_companies)){
}
- //Scheduled tickets
+ // Scheduled tickets
// Get date now, and calculate tomorrow's date (presuming this is being run at 11 PM)
$now = new DateTime();
diff --git a/db.sql b/db.sql
index b8b4899a..45f5bc60 100644
--- a/db.sql
+++ b/db.sql
@@ -286,6 +286,7 @@ CREATE TABLE `companies` (
`company_email` varchar(200) DEFAULT NULL,
`company_website` varchar(200) DEFAULT NULL,
`company_logo` varchar(250) DEFAULT NULL,
+ `company_locale` varchar(200) DEFAULT NULL,
`company_currency` varchar(200) NOT NULL,
`company_created_at` datetime NOT NULL,
`company_updated_at` datetime DEFAULT NULL,
@@ -1420,4 +1421,4 @@ CREATE TABLE `vendors` (
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2022-02-18 1:31:30
+-- Dump completed on 2022-02-18 11:13:32
diff --git a/get_settings.php b/get_settings.php
index f482e548..aaa515ef 100644
--- a/get_settings.php
+++ b/get_settings.php
@@ -410,6 +410,444 @@ $currencies_array = array(
'ZWD' => 'Zimbabwe Dollar'
);
+// List of locales
+$locales_array = [
+ 'af_NA' => 'Afrikaans (Namibia)',
+ 'af_ZA' => 'Afrikaans (South Africa)',
+ 'af' => 'Afrikaans',
+ 'ak_GH' => 'Akan (Ghana)',
+ 'ak' => 'Akan',
+ 'sq_AL' => 'Albanian (Albania)',
+ 'sq' => 'Albanian',
+ 'am_ET' => 'Amharic (Ethiopia)',
+ 'am' => 'Amharic',
+ 'ar_DZ' => 'Arabic (Algeria)',
+ 'ar_BH' => 'Arabic (Bahrain)',
+ 'ar_EG' => 'Arabic (Egypt)',
+ 'ar_IQ' => 'Arabic (Iraq)',
+ 'ar_JO' => 'Arabic (Jordan)',
+ 'ar_KW' => 'Arabic (Kuwait)',
+ 'ar_LB' => 'Arabic (Lebanon)',
+ 'ar_LY' => 'Arabic (Libya)',
+ 'ar_MA' => 'Arabic (Morocco)',
+ 'ar_OM' => 'Arabic (Oman)',
+ 'ar_QA' => 'Arabic (Qatar)',
+ 'ar_SA' => 'Arabic (Saudi Arabia)',
+ 'ar_SD' => 'Arabic (Sudan)',
+ 'ar_SY' => 'Arabic (Syria)',
+ 'ar_TN' => 'Arabic (Tunisia)',
+ 'ar_AE' => 'Arabic (United Arab Emirates)',
+ 'ar_YE' => 'Arabic (Yemen)',
+ 'ar' => 'Arabic',
+ 'hy_AM' => 'Armenian (Armenia)',
+ 'hy' => 'Armenian',
+ 'as_IN' => 'Assamese (India)',
+ 'as' => 'Assamese',
+ 'asa_TZ' => 'Asu (Tanzania)',
+ 'asa' => 'Asu',
+ 'az_Cyrl' => 'Azerbaijani (Cyrillic)',
+ 'az_Cyrl_AZ' => 'Azerbaijani (Cyrillic, Azerbaijan)',
+ 'az_Latn' => 'Azerbaijani (Latin)',
+ 'az_Latn_AZ' => 'Azerbaijani (Latin, Azerbaijan)',
+ 'az' => 'Azerbaijani',
+ 'bm_ML' => 'Bambara (Mali)',
+ 'bm' => 'Bambara',
+ 'eu_ES' => 'Basque (Spain)',
+ 'eu' => 'Basque',
+ 'be_BY' => 'Belarusian (Belarus)',
+ 'be' => 'Belarusian',
+ 'bem_ZM' => 'Bemba (Zambia)',
+ 'bem' => 'Bemba',
+ 'bez_TZ' => 'Bena (Tanzania)',
+ 'bez' => 'Bena',
+ 'bn_BD' => 'Bengali (Bangladesh)',
+ 'bn_IN' => 'Bengali (India)',
+ 'bn' => 'Bengali',
+ 'bs_BA' => 'Bosnian (Bosnia and Herzegovina)',
+ 'bs' => 'Bosnian',
+ 'bg_BG' => 'Bulgarian (Bulgaria)',
+ 'bg' => 'Bulgarian',
+ 'my_MM' => 'Burmese (Myanmar [Burma])',
+ 'my' => 'Burmese',
+ 'ca_ES' => 'Catalan (Spain)',
+ 'ca' => 'Catalan',
+ 'tzm_Latn' => 'Central Morocco Tamazight (Latin)',
+ 'tzm_Latn_MA' => 'Central Morocco Tamazight (Latin, Morocco)',
+ 'tzm' => 'Central Morocco Tamazight',
+ 'chr_US' => 'Cherokee (United States)',
+ 'chr' => 'Cherokee',
+ 'cgg_UG' => 'Chiga (Uganda)',
+ 'cgg' => 'Chiga',
+ 'zh_Hans' => 'Chinese (Simplified Han)',
+ 'zh_Hans_CN' => 'Chinese (Simplified Han, China)',
+ 'zh_Hans_HK' => 'Chinese (Simplified Han, Hong Kong SAR China)',
+ 'zh_Hans_MO' => 'Chinese (Simplified Han, Macau SAR China)',
+ 'zh_Hans_SG' => 'Chinese (Simplified Han, Singapore)',
+ 'zh_Hant' => 'Chinese (Traditional Han)',
+ 'zh_Hant_HK' => 'Chinese (Traditional Han, Hong Kong SAR China)',
+ 'zh_Hant_MO' => 'Chinese (Traditional Han, Macau SAR China)',
+ 'zh_Hant_TW' => 'Chinese (Traditional Han, Taiwan)',
+ 'zh' => 'Chinese',
+ 'kw_GB' => 'Cornish (United Kingdom)',
+ 'kw' => 'Cornish',
+ 'hr_HR' => 'Croatian (Croatia)',
+ 'hr' => 'Croatian',
+ 'cs_CZ' => 'Czech (Czech Republic)',
+ 'cs' => 'Czech',
+ 'da_DK' => 'Danish (Denmark)',
+ 'da' => 'Danish',
+ 'nl_BE' => 'Dutch (Belgium)',
+ 'nl_NL' => 'Dutch (Netherlands)',
+ 'nl' => 'Dutch',
+ 'ebu_KE' => 'Embu (Kenya)',
+ 'ebu' => 'Embu',
+ 'en_AS' => 'English (American Samoa)',
+ 'en_AU' => 'English (Australia)',
+ 'en_BE' => 'English (Belgium)',
+ 'en_BZ' => 'English (Belize)',
+ 'en_BW' => 'English (Botswana)',
+ 'en_CA' => 'English (Canada)',
+ 'en_GU' => 'English (Guam)',
+ 'en_HK' => 'English (Hong Kong SAR China)',
+ 'en_IN' => 'English (India)',
+ 'en_IE' => 'English (Ireland)',
+ 'en_JM' => 'English (Jamaica)',
+ 'en_MT' => 'English (Malta)',
+ 'en_MH' => 'English (Marshall Islands)',
+ 'en_MU' => 'English (Mauritius)',
+ 'en_NA' => 'English (Namibia)',
+ 'en_NZ' => 'English (New Zealand)',
+ 'en_MP' => 'English (Northern Mariana Islands)',
+ 'en_PK' => 'English (Pakistan)',
+ 'en_PH' => 'English (Philippines)',
+ 'en_SG' => 'English (Singapore)',
+ 'en_ZA' => 'English (South Africa)',
+ 'en_TT' => 'English (Trinidad and Tobago)',
+ 'en_UM' => 'English (U.S. Minor Outlying Islands)',
+ 'en_VI' => 'English (U.S. Virgin Islands)',
+ 'en_GB' => 'English (United Kingdom)',
+ 'en_US' => 'English (United States)',
+ 'en_ZW' => 'English (Zimbabwe)',
+ 'en' => 'English',
+ 'eo' => 'Esperanto',
+ 'et_EE' => 'Estonian (Estonia)',
+ 'et' => 'Estonian',
+ 'ee_GH' => 'Ewe (Ghana)',
+ 'ee_TG' => 'Ewe (Togo)',
+ 'ee' => 'Ewe',
+ 'fo_FO' => 'Faroese (Faroe Islands)',
+ 'fo' => 'Faroese',
+ 'fil_PH' => 'Filipino (Philippines)',
+ 'fil' => 'Filipino',
+ 'fi_FI' => 'Finnish (Finland)',
+ 'fi' => 'Finnish',
+ 'fr_BE' => 'French (Belgium)',
+ 'fr_BJ' => 'French (Benin)',
+ 'fr_BF' => 'French (Burkina Faso)',
+ 'fr_BI' => 'French (Burundi)',
+ 'fr_CM' => 'French (Cameroon)',
+ 'fr_CA' => 'French (Canada)',
+ 'fr_CF' => 'French (Central African Republic)',
+ 'fr_TD' => 'French (Chad)',
+ 'fr_KM' => 'French (Comoros)',
+ 'fr_CG' => 'French (Congo - Brazzaville)',
+ 'fr_CD' => 'French (Congo - Kinshasa)',
+ 'fr_CI' => 'French (Côte d’Ivoire)',
+ 'fr_DJ' => 'French (Djibouti)',
+ 'fr_GQ' => 'French (Equatorial Guinea)',
+ 'fr_FR' => 'French (France)',
+ 'fr_GA' => 'French (Gabon)',
+ 'fr_GP' => 'French (Guadeloupe)',
+ 'fr_GN' => 'French (Guinea)',
+ 'fr_LU' => 'French (Luxembourg)',
+ 'fr_MG' => 'French (Madagascar)',
+ 'fr_ML' => 'French (Mali)',
+ 'fr_MQ' => 'French (Martinique)',
+ 'fr_MC' => 'French (Monaco)',
+ 'fr_NE' => 'French (Niger)',
+ 'fr_RW' => 'French (Rwanda)',
+ 'fr_RE' => 'French (Réunion)',
+ 'fr_BL' => 'French (Saint Barthélemy)',
+ 'fr_MF' => 'French (Saint Martin)',
+ 'fr_SN' => 'French (Senegal)',
+ 'fr_CH' => 'French (Switzerland)',
+ 'fr_TG' => 'French (Togo)',
+ 'fr' => 'French',
+ 'ff_SN' => 'Fulah (Senegal)',
+ 'ff' => 'Fulah',
+ 'gl_ES' => 'Galician (Spain)',
+ 'gl' => 'Galician',
+ 'lg_UG' => 'Ganda (Uganda)',
+ 'lg' => 'Ganda',
+ 'ka_GE' => 'Georgian (Georgia)',
+ 'ka' => 'Georgian',
+ 'de_AT' => 'German (Austria)',
+ 'de_BE' => 'German (Belgium)',
+ 'de_DE' => 'German (Germany)',
+ 'de_LI' => 'German (Liechtenstein)',
+ 'de_LU' => 'German (Luxembourg)',
+ 'de_CH' => 'German (Switzerland)',
+ 'de' => 'German',
+ 'el_CY' => 'Greek (Cyprus)',
+ 'el_GR' => 'Greek (Greece)',
+ 'el' => 'Greek',
+ 'gu_IN' => 'Gujarati (India)',
+ 'gu' => 'Gujarati',
+ 'guz_KE' => 'Gusii (Kenya)',
+ 'guz' => 'Gusii',
+ 'ha_Latn' => 'Hausa (Latin)',
+ 'ha_Latn_GH' => 'Hausa (Latin, Ghana)',
+ 'ha_Latn_NE' => 'Hausa (Latin, Niger)',
+ 'ha_Latn_NG' => 'Hausa (Latin, Nigeria)',
+ 'ha' => 'Hausa',
+ 'haw_US' => 'Hawaiian (United States)',
+ 'haw' => 'Hawaiian',
+ 'he_IL' => 'Hebrew (Israel)',
+ 'he' => 'Hebrew',
+ 'hi_IN' => 'Hindi (India)',
+ 'hi' => 'Hindi',
+ 'hu_HU' => 'Hungarian (Hungary)',
+ 'hu' => 'Hungarian',
+ 'is_IS' => 'Icelandic (Iceland)',
+ 'is' => 'Icelandic',
+ 'ig_NG' => 'Igbo (Nigeria)',
+ 'ig' => 'Igbo',
+ 'id_ID' => 'Indonesian (Indonesia)',
+ 'id' => 'Indonesian',
+ 'ga_IE' => 'Irish (Ireland)',
+ 'ga' => 'Irish',
+ 'it_IT' => 'Italian (Italy)',
+ 'it_CH' => 'Italian (Switzerland)',
+ 'it' => 'Italian',
+ 'ja_JP' => 'Japanese (Japan)',
+ 'ja' => 'Japanese',
+ 'kea_CV' => 'Kabuverdianu (Cape Verde)',
+ 'kea' => 'Kabuverdianu',
+ 'kab_DZ' => 'Kabyle (Algeria)',
+ 'kab' => 'Kabyle',
+ 'kl_GL' => 'Kalaallisut (Greenland)',
+ 'kl' => 'Kalaallisut',
+ 'kln_KE' => 'Kalenjin (Kenya)',
+ 'kln' => 'Kalenjin',
+ 'kam_KE' => 'Kamba (Kenya)',
+ 'kam' => 'Kamba',
+ 'kn_IN' => 'Kannada (India)',
+ 'kn' => 'Kannada',
+ 'kk_Cyrl' => 'Kazakh (Cyrillic)',
+ 'kk_Cyrl_KZ' => 'Kazakh (Cyrillic, Kazakhstan)',
+ 'kk' => 'Kazakh',
+ 'km_KH' => 'Khmer (Cambodia)',
+ 'km' => 'Khmer',
+ 'ki_KE' => 'Kikuyu (Kenya)',
+ 'ki' => 'Kikuyu',
+ 'rw_RW' => 'Kinyarwanda (Rwanda)',
+ 'rw' => 'Kinyarwanda',
+ 'kok_IN' => 'Konkani (India)',
+ 'kok' => 'Konkani',
+ 'ko_KR' => 'Korean (South Korea)',
+ 'ko' => 'Korean',
+ 'khq_ML' => 'Koyra Chiini (Mali)',
+ 'khq' => 'Koyra Chiini',
+ 'ses_ML' => 'Koyraboro Senni (Mali)',
+ 'ses' => 'Koyraboro Senni',
+ 'lag_TZ' => 'Langi (Tanzania)',
+ 'lag' => 'Langi',
+ 'lv_LV' => 'Latvian (Latvia)',
+ 'lv' => 'Latvian',
+ 'lt_LT' => 'Lithuanian (Lithuania)',
+ 'lt' => 'Lithuanian',
+ 'luo_KE' => 'Luo (Kenya)',
+ 'luo' => 'Luo',
+ 'luy_KE' => 'Luyia (Kenya)',
+ 'luy' => 'Luyia',
+ 'mk_MK' => 'Macedonian (Macedonia)',
+ 'mk' => 'Macedonian',
+ 'jmc_TZ' => 'Machame (Tanzania)',
+ 'jmc' => 'Machame',
+ 'kde_TZ' => 'Makonde (Tanzania)',
+ 'kde' => 'Makonde',
+ 'mg_MG' => 'Malagasy (Madagascar)',
+ 'mg' => 'Malagasy',
+ 'ms_BN' => 'Malay (Brunei)',
+ 'ms_MY' => 'Malay (Malaysia)',
+ 'ms' => 'Malay',
+ 'ml_IN' => 'Malayalam (India)',
+ 'ml' => 'Malayalam',
+ 'mt_MT' => 'Maltese (Malta)',
+ 'mt' => 'Maltese',
+ 'gv_GB' => 'Manx (United Kingdom)',
+ 'gv' => 'Manx',
+ 'mr_IN' => 'Marathi (India)',
+ 'mr' => 'Marathi',
+ 'mas_KE' => 'Masai (Kenya)',
+ 'mas_TZ' => 'Masai (Tanzania)',
+ 'mas' => 'Masai',
+ 'mer_KE' => 'Meru (Kenya)',
+ 'mer' => 'Meru',
+ 'mfe_MU' => 'Morisyen (Mauritius)',
+ 'mfe' => 'Morisyen',
+ 'naq_NA' => 'Nama (Namibia)',
+ 'naq' => 'Nama',
+ 'ne_IN' => 'Nepali (India)',
+ 'ne_NP' => 'Nepali (Nepal)',
+ 'ne' => 'Nepali',
+ 'nd_ZW' => 'North Ndebele (Zimbabwe)',
+ 'nd' => 'North Ndebele',
+ 'nb_NO' => 'Norwegian Bokmål (Norway)',
+ 'nb' => 'Norwegian Bokmål',
+ 'nn_NO' => 'Norwegian Nynorsk (Norway)',
+ 'nn' => 'Norwegian Nynorsk',
+ 'nyn_UG' => 'Nyankole (Uganda)',
+ 'nyn' => 'Nyankole',
+ 'or_IN' => 'Oriya (India)',
+ 'or' => 'Oriya',
+ 'om_ET' => 'Oromo (Ethiopia)',
+ 'om_KE' => 'Oromo (Kenya)',
+ 'om' => 'Oromo',
+ 'ps_AF' => 'Pashto (Afghanistan)',
+ 'ps' => 'Pashto',
+ 'fa_AF' => 'Persian (Afghanistan)',
+ 'fa_IR' => 'Persian (Iran)',
+ 'fa' => 'Persian',
+ 'pl_PL' => 'Polish (Poland)',
+ 'pl' => 'Polish',
+ 'pt_BR' => 'Portuguese (Brazil)',
+ 'pt_GW' => 'Portuguese (Guinea-Bissau)',
+ 'pt_MZ' => 'Portuguese (Mozambique)',
+ 'pt_PT' => 'Portuguese (Portugal)',
+ 'pt' => 'Portuguese',
+ 'pa_Arab' => 'Punjabi (Arabic)',
+ 'pa_Arab_PK' => 'Punjabi (Arabic, Pakistan)',
+ 'pa_Guru' => 'Punjabi (Gurmukhi)',
+ 'pa_Guru_IN' => 'Punjabi (Gurmukhi, India)',
+ 'pa' => 'Punjabi',
+ 'ro_MD' => 'Romanian (Moldova)',
+ 'ro_RO' => 'Romanian (Romania)',
+ 'ro' => 'Romanian',
+ 'rm_CH' => 'Romansh (Switzerland)',
+ 'rm' => 'Romansh',
+ 'rof_TZ' => 'Rombo (Tanzania)',
+ 'rof' => 'Rombo',
+ 'ru_MD' => 'Russian (Moldova)',
+ 'ru_RU' => 'Russian (Russia)',
+ 'ru_UA' => 'Russian (Ukraine)',
+ 'ru' => 'Russian',
+ 'rwk_TZ' => 'Rwa (Tanzania)',
+ 'rwk' => 'Rwa',
+ 'saq_KE' => 'Samburu (Kenya)',
+ 'saq' => 'Samburu',
+ 'sg_CF' => 'Sango (Central African Republic)',
+ 'sg' => 'Sango',
+ 'seh_MZ' => 'Sena (Mozambique)',
+ 'seh' => 'Sena',
+ 'sr_Cyrl' => 'Serbian (Cyrillic)',
+ 'sr_Cyrl_BA' => 'Serbian (Cyrillic, Bosnia and Herzegovina)',
+ 'sr_Cyrl_ME' => 'Serbian (Cyrillic, Montenegro)',
+ 'sr_Cyrl_RS' => 'Serbian (Cyrillic, Serbia)',
+ 'sr_Latn' => 'Serbian (Latin)',
+ 'sr_Latn_BA' => 'Serbian (Latin, Bosnia and Herzegovina)',
+ 'sr_Latn_ME' => 'Serbian (Latin, Montenegro)',
+ 'sr_Latn_RS' => 'Serbian (Latin, Serbia)',
+ 'sr' => 'Serbian',
+ 'sn_ZW' => 'Shona (Zimbabwe)',
+ 'sn' => 'Shona',
+ 'ii_CN' => 'Sichuan Yi (China)',
+ 'ii' => 'Sichuan Yi',
+ 'si_LK' => 'Sinhala (Sri Lanka)',
+ 'si' => 'Sinhala',
+ 'sk_SK' => 'Slovak (Slovakia)',
+ 'sk' => 'Slovak',
+ 'sl_SI' => 'Slovenian (Slovenia)',
+ 'sl' => 'Slovenian',
+ 'xog_UG' => 'Soga (Uganda)',
+ 'xog' => 'Soga',
+ 'so_DJ' => 'Somali (Djibouti)',
+ 'so_ET' => 'Somali (Ethiopia)',
+ 'so_KE' => 'Somali (Kenya)',
+ 'so_SO' => 'Somali (Somalia)',
+ 'so' => 'Somali',
+ 'es_AR' => 'Spanish (Argentina)',
+ 'es_BO' => 'Spanish (Bolivia)',
+ 'es_CL' => 'Spanish (Chile)',
+ 'es_CO' => 'Spanish (Colombia)',
+ 'es_CR' => 'Spanish (Costa Rica)',
+ 'es_DO' => 'Spanish (Dominican Republic)',
+ 'es_EC' => 'Spanish (Ecuador)',
+ 'es_SV' => 'Spanish (El Salvador)',
+ 'es_GQ' => 'Spanish (Equatorial Guinea)',
+ 'es_GT' => 'Spanish (Guatemala)',
+ 'es_HN' => 'Spanish (Honduras)',
+ 'es_419' => 'Spanish (Latin America)',
+ 'es_MX' => 'Spanish (Mexico)',
+ 'es_NI' => 'Spanish (Nicaragua)',
+ 'es_PA' => 'Spanish (Panama)',
+ 'es_PY' => 'Spanish (Paraguay)',
+ 'es_PE' => 'Spanish (Peru)',
+ 'es_PR' => 'Spanish (Puerto Rico)',
+ 'es_ES' => 'Spanish (Spain)',
+ 'es_US' => 'Spanish (United States)',
+ 'es_UY' => 'Spanish (Uruguay)',
+ 'es_VE' => 'Spanish (Venezuela)',
+ 'es' => 'Spanish',
+ 'sw_KE' => 'Swahili (Kenya)',
+ 'sw_TZ' => 'Swahili (Tanzania)',
+ 'sw' => 'Swahili',
+ 'sv_FI' => 'Swedish (Finland)',
+ 'sv_SE' => 'Swedish (Sweden)',
+ 'sv' => 'Swedish',
+ 'gsw_CH' => 'Swiss German (Switzerland)',
+ 'gsw' => 'Swiss German',
+ 'shi_Latn' => 'Tachelhit (Latin)',
+ 'shi_Latn_MA' => 'Tachelhit (Latin, Morocco)',
+ 'shi_Tfng' => 'Tachelhit (Tifinagh)',
+ 'shi_Tfng_MA' => 'Tachelhit (Tifinagh, Morocco)',
+ 'shi' => 'Tachelhit',
+ 'dav_KE' => 'Taita (Kenya)',
+ 'dav' => 'Taita',
+ 'ta_IN' => 'Tamil (India)',
+ 'ta_LK' => 'Tamil (Sri Lanka)',
+ 'ta' => 'Tamil',
+ 'te_IN' => 'Telugu (India)',
+ 'te' => 'Telugu',
+ 'teo_KE' => 'Teso (Kenya)',
+ 'teo_UG' => 'Teso (Uganda)',
+ 'teo' => 'Teso',
+ 'th_TH' => 'Thai (Thailand)',
+ 'th' => 'Thai',
+ 'bo_CN' => 'Tibetan (China)',
+ 'bo_IN' => 'Tibetan (India)',
+ 'bo' => 'Tibetan',
+ 'ti_ER' => 'Tigrinya (Eritrea)',
+ 'ti_ET' => 'Tigrinya (Ethiopia)',
+ 'ti' => 'Tigrinya',
+ 'to_TO' => 'Tonga (Tonga)',
+ 'to' => 'Tonga',
+ 'tr_TR' => 'Turkish (Turkey)',
+ 'tr' => 'Turkish',
+ 'uk_UA' => 'Ukrainian (Ukraine)',
+ 'uk' => 'Ukrainian',
+ 'ur_IN' => 'Urdu (India)',
+ 'ur_PK' => 'Urdu (Pakistan)',
+ 'ur' => 'Urdu',
+ 'uz_Arab' => 'Uzbek (Arabic)',
+ 'uz_Arab_AF' => 'Uzbek (Arabic, Afghanistan)',
+ 'uz_Cyrl' => 'Uzbek (Cyrillic)',
+ 'uz_Cyrl_UZ' => 'Uzbek (Cyrillic, Uzbekistan)',
+ 'uz_Latn' => 'Uzbek (Latin)',
+ 'uz_Latn_UZ' => 'Uzbek (Latin, Uzbekistan)',
+ 'uz' => 'Uzbek',
+ 'vi_VN' => 'Vietnamese (Vietnam)',
+ 'vi' => 'Vietnamese',
+ 'vun_TZ' => 'Vunjo (Tanzania)',
+ 'vun' => 'Vunjo',
+ 'cy_GB' => 'Welsh (United Kingdom)',
+ 'cy' => 'Welsh',
+ 'yo_NG' => 'Yoruba (Nigeria)',
+ 'yo' => 'Yoruba',
+ 'zu_ZA' => 'Zulu (South Africa)',
+ 'zu' => 'Zulu',
+];
+
$category_types_array = array(
'Expense',
'Income',
diff --git a/guest_view_invoice.php b/guest_view_invoice.php
index e045356c..4a79eb4c 100644
--- a/guest_view_invoice.php
+++ b/guest_view_invoice.php
@@ -58,13 +58,14 @@ if(isset($_GET['invoice_id'], $_GET['url_key'])){
if(!empty($company_logo)){
$company_logo_base64 = base64_encode(file_get_contents("uploads/settings/$company_id/$company_logo"));
}
+ $company_locale = $row['company_locale'];
$config_invoice_footer = $row['config_invoice_footer'];
$config_stripe_enable = $row['config_stripe_enable'];
$config_stripe_publishable = $row['config_stripe_publishable'];
$config_stripe_secret = $row['config_stripe_secret'];
//Set Currency Format
- $currency_format = numfmt_create('en-US', NumberFormatter::CURRENCY);
+ $currency_format = numfmt_create($company_locale, NumberFormatter::CURRENCY);
$ip = strip_tags(mysqli_real_escape_string($mysqli,get_ip()));
$os = strip_tags(mysqli_real_escape_string($mysqli,get_os()));
diff --git a/guest_view_quote.php b/guest_view_quote.php
index 4b0d6417..d1bcc998 100644
--- a/guest_view_quote.php
+++ b/guest_view_quote.php
@@ -58,10 +58,11 @@ if(isset($_GET['quote_id'], $_GET['url_key'])){
if(!empty($company_logo)){
$company_logo_base64 = base64_encode(file_get_contents("uploads/settings/$company_id/$company_logo"));
}
+ $company_locale = $row['company_locale'];
$config_quote_footer = $row['config_quote_footer'];
//Set Currency Format
- $currency_format = numfmt_create('en-US', NumberFormatter::CURRENCY);
+ $currency_format = numfmt_create($company_locale, NumberFormatter::CURRENCY);
$ip = get_ip();
$os = get_os();
diff --git a/post.php b/post.php
index 1439c00e..759ff796 100644
--- a/post.php
+++ b/post.php
@@ -442,9 +442,10 @@ if(isset($_POST['add_company'])){
$phone = preg_replace("/[^0-9]/", '',$_POST['phone']);
$email = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['email'])));
$website = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['website'])));
+ $locale = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['locale'])));
$currency_code = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['currency_code'])));
-
- mysqli_query($mysqli,"INSERT INTO companies SET company_name = '$name', company_address = '$address', company_city = '$city', company_state = '$state', company_zip = '$zip', company_country = '$country', company_phone = '$phone', company_email = '$email', company_website = '$website', company_currency = '$currency_code', company_created_at = NOW()");
+
+ mysqli_query($mysqli,"INSERT INTO companies SET company_name = '$name', company_address = '$address', company_city = '$city', company_state = '$state', company_zip = '$zip', company_country = '$country', company_phone = '$phone', company_email = '$email', company_website = '$website', company_locale = '$locale', company_currency = '$currency_code',company_created_at = NOW()");
$company_id = mysqli_insert_id($mysqli);
$config_base_url = $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']);
@@ -540,6 +541,7 @@ if(isset($_POST['edit_company'])){
$phone = preg_replace("/[^0-9]/", '',$_POST['phone']);
$email = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['email'])));
$website = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['website'])));
+ $locale = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['locale'])));
$currency_code = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['currency_code'])));
$existing_file_name = strip_tags(mysqli_real_escape_string($mysqli,$_POST['existing_file_name']));
@@ -593,7 +595,7 @@ if(isset($_POST['edit_company'])){
}
}
- mysqli_query($mysqli,"UPDATE companies SET company_name = '$name', company_address = '$address', company_city = '$city', company_state = '$state', company_zip = '$zip', company_country = '$country', company_phone = '$phone', company_email = '$email', company_website = '$website', company_currency = '$currency_code', company_updated_at = NOW() WHERE company_id = $company_id");
+ mysqli_query($mysqli,"UPDATE companies SET company_name = '$name', company_address = '$address', company_city = '$city', company_state = '$state', company_zip = '$zip', company_country = '$country', company_phone = '$phone', company_email = '$email', company_website = '$website', company_locale = '$locale', company_currency = '$currency_code', company_updated_at = NOW() WHERE company_id = $company_id");
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Company', log_action = 'Modify', log_description = '$session_name modified company $name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_created_at = NOW(), log_user_id = $session_user_id, company_id = $session_company_id");
diff --git a/setup.php b/setup.php
index 7616ecfd..761051f4 100644
--- a/setup.php
+++ b/setup.php
@@ -327,6 +327,444 @@ $currencies_array = array(
'ZWD' => 'Zimbabwe Dollar'
);
+// List of locales
+$locales_array = [
+ 'af_NA' => 'Afrikaans (Namibia)',
+ 'af_ZA' => 'Afrikaans (South Africa)',
+ 'af' => 'Afrikaans',
+ 'ak_GH' => 'Akan (Ghana)',
+ 'ak' => 'Akan',
+ 'sq_AL' => 'Albanian (Albania)',
+ 'sq' => 'Albanian',
+ 'am_ET' => 'Amharic (Ethiopia)',
+ 'am' => 'Amharic',
+ 'ar_DZ' => 'Arabic (Algeria)',
+ 'ar_BH' => 'Arabic (Bahrain)',
+ 'ar_EG' => 'Arabic (Egypt)',
+ 'ar_IQ' => 'Arabic (Iraq)',
+ 'ar_JO' => 'Arabic (Jordan)',
+ 'ar_KW' => 'Arabic (Kuwait)',
+ 'ar_LB' => 'Arabic (Lebanon)',
+ 'ar_LY' => 'Arabic (Libya)',
+ 'ar_MA' => 'Arabic (Morocco)',
+ 'ar_OM' => 'Arabic (Oman)',
+ 'ar_QA' => 'Arabic (Qatar)',
+ 'ar_SA' => 'Arabic (Saudi Arabia)',
+ 'ar_SD' => 'Arabic (Sudan)',
+ 'ar_SY' => 'Arabic (Syria)',
+ 'ar_TN' => 'Arabic (Tunisia)',
+ 'ar_AE' => 'Arabic (United Arab Emirates)',
+ 'ar_YE' => 'Arabic (Yemen)',
+ 'ar' => 'Arabic',
+ 'hy_AM' => 'Armenian (Armenia)',
+ 'hy' => 'Armenian',
+ 'as_IN' => 'Assamese (India)',
+ 'as' => 'Assamese',
+ 'asa_TZ' => 'Asu (Tanzania)',
+ 'asa' => 'Asu',
+ 'az_Cyrl' => 'Azerbaijani (Cyrillic)',
+ 'az_Cyrl_AZ' => 'Azerbaijani (Cyrillic, Azerbaijan)',
+ 'az_Latn' => 'Azerbaijani (Latin)',
+ 'az_Latn_AZ' => 'Azerbaijani (Latin, Azerbaijan)',
+ 'az' => 'Azerbaijani',
+ 'bm_ML' => 'Bambara (Mali)',
+ 'bm' => 'Bambara',
+ 'eu_ES' => 'Basque (Spain)',
+ 'eu' => 'Basque',
+ 'be_BY' => 'Belarusian (Belarus)',
+ 'be' => 'Belarusian',
+ 'bem_ZM' => 'Bemba (Zambia)',
+ 'bem' => 'Bemba',
+ 'bez_TZ' => 'Bena (Tanzania)',
+ 'bez' => 'Bena',
+ 'bn_BD' => 'Bengali (Bangladesh)',
+ 'bn_IN' => 'Bengali (India)',
+ 'bn' => 'Bengali',
+ 'bs_BA' => 'Bosnian (Bosnia and Herzegovina)',
+ 'bs' => 'Bosnian',
+ 'bg_BG' => 'Bulgarian (Bulgaria)',
+ 'bg' => 'Bulgarian',
+ 'my_MM' => 'Burmese (Myanmar [Burma])',
+ 'my' => 'Burmese',
+ 'ca_ES' => 'Catalan (Spain)',
+ 'ca' => 'Catalan',
+ 'tzm_Latn' => 'Central Morocco Tamazight (Latin)',
+ 'tzm_Latn_MA' => 'Central Morocco Tamazight (Latin, Morocco)',
+ 'tzm' => 'Central Morocco Tamazight',
+ 'chr_US' => 'Cherokee (United States)',
+ 'chr' => 'Cherokee',
+ 'cgg_UG' => 'Chiga (Uganda)',
+ 'cgg' => 'Chiga',
+ 'zh_Hans' => 'Chinese (Simplified Han)',
+ 'zh_Hans_CN' => 'Chinese (Simplified Han, China)',
+ 'zh_Hans_HK' => 'Chinese (Simplified Han, Hong Kong SAR China)',
+ 'zh_Hans_MO' => 'Chinese (Simplified Han, Macau SAR China)',
+ 'zh_Hans_SG' => 'Chinese (Simplified Han, Singapore)',
+ 'zh_Hant' => 'Chinese (Traditional Han)',
+ 'zh_Hant_HK' => 'Chinese (Traditional Han, Hong Kong SAR China)',
+ 'zh_Hant_MO' => 'Chinese (Traditional Han, Macau SAR China)',
+ 'zh_Hant_TW' => 'Chinese (Traditional Han, Taiwan)',
+ 'zh' => 'Chinese',
+ 'kw_GB' => 'Cornish (United Kingdom)',
+ 'kw' => 'Cornish',
+ 'hr_HR' => 'Croatian (Croatia)',
+ 'hr' => 'Croatian',
+ 'cs_CZ' => 'Czech (Czech Republic)',
+ 'cs' => 'Czech',
+ 'da_DK' => 'Danish (Denmark)',
+ 'da' => 'Danish',
+ 'nl_BE' => 'Dutch (Belgium)',
+ 'nl_NL' => 'Dutch (Netherlands)',
+ 'nl' => 'Dutch',
+ 'ebu_KE' => 'Embu (Kenya)',
+ 'ebu' => 'Embu',
+ 'en_AS' => 'English (American Samoa)',
+ 'en_AU' => 'English (Australia)',
+ 'en_BE' => 'English (Belgium)',
+ 'en_BZ' => 'English (Belize)',
+ 'en_BW' => 'English (Botswana)',
+ 'en_CA' => 'English (Canada)',
+ 'en_GU' => 'English (Guam)',
+ 'en_HK' => 'English (Hong Kong SAR China)',
+ 'en_IN' => 'English (India)',
+ 'en_IE' => 'English (Ireland)',
+ 'en_JM' => 'English (Jamaica)',
+ 'en_MT' => 'English (Malta)',
+ 'en_MH' => 'English (Marshall Islands)',
+ 'en_MU' => 'English (Mauritius)',
+ 'en_NA' => 'English (Namibia)',
+ 'en_NZ' => 'English (New Zealand)',
+ 'en_MP' => 'English (Northern Mariana Islands)',
+ 'en_PK' => 'English (Pakistan)',
+ 'en_PH' => 'English (Philippines)',
+ 'en_SG' => 'English (Singapore)',
+ 'en_ZA' => 'English (South Africa)',
+ 'en_TT' => 'English (Trinidad and Tobago)',
+ 'en_UM' => 'English (U.S. Minor Outlying Islands)',
+ 'en_VI' => 'English (U.S. Virgin Islands)',
+ 'en_GB' => 'English (United Kingdom)',
+ 'en_US' => 'English (United States)',
+ 'en_ZW' => 'English (Zimbabwe)',
+ 'en' => 'English',
+ 'eo' => 'Esperanto',
+ 'et_EE' => 'Estonian (Estonia)',
+ 'et' => 'Estonian',
+ 'ee_GH' => 'Ewe (Ghana)',
+ 'ee_TG' => 'Ewe (Togo)',
+ 'ee' => 'Ewe',
+ 'fo_FO' => 'Faroese (Faroe Islands)',
+ 'fo' => 'Faroese',
+ 'fil_PH' => 'Filipino (Philippines)',
+ 'fil' => 'Filipino',
+ 'fi_FI' => 'Finnish (Finland)',
+ 'fi' => 'Finnish',
+ 'fr_BE' => 'French (Belgium)',
+ 'fr_BJ' => 'French (Benin)',
+ 'fr_BF' => 'French (Burkina Faso)',
+ 'fr_BI' => 'French (Burundi)',
+ 'fr_CM' => 'French (Cameroon)',
+ 'fr_CA' => 'French (Canada)',
+ 'fr_CF' => 'French (Central African Republic)',
+ 'fr_TD' => 'French (Chad)',
+ 'fr_KM' => 'French (Comoros)',
+ 'fr_CG' => 'French (Congo - Brazzaville)',
+ 'fr_CD' => 'French (Congo - Kinshasa)',
+ 'fr_CI' => 'French (Côte d’Ivoire)',
+ 'fr_DJ' => 'French (Djibouti)',
+ 'fr_GQ' => 'French (Equatorial Guinea)',
+ 'fr_FR' => 'French (France)',
+ 'fr_GA' => 'French (Gabon)',
+ 'fr_GP' => 'French (Guadeloupe)',
+ 'fr_GN' => 'French (Guinea)',
+ 'fr_LU' => 'French (Luxembourg)',
+ 'fr_MG' => 'French (Madagascar)',
+ 'fr_ML' => 'French (Mali)',
+ 'fr_MQ' => 'French (Martinique)',
+ 'fr_MC' => 'French (Monaco)',
+ 'fr_NE' => 'French (Niger)',
+ 'fr_RW' => 'French (Rwanda)',
+ 'fr_RE' => 'French (Réunion)',
+ 'fr_BL' => 'French (Saint Barthélemy)',
+ 'fr_MF' => 'French (Saint Martin)',
+ 'fr_SN' => 'French (Senegal)',
+ 'fr_CH' => 'French (Switzerland)',
+ 'fr_TG' => 'French (Togo)',
+ 'fr' => 'French',
+ 'ff_SN' => 'Fulah (Senegal)',
+ 'ff' => 'Fulah',
+ 'gl_ES' => 'Galician (Spain)',
+ 'gl' => 'Galician',
+ 'lg_UG' => 'Ganda (Uganda)',
+ 'lg' => 'Ganda',
+ 'ka_GE' => 'Georgian (Georgia)',
+ 'ka' => 'Georgian',
+ 'de_AT' => 'German (Austria)',
+ 'de_BE' => 'German (Belgium)',
+ 'de_DE' => 'German (Germany)',
+ 'de_LI' => 'German (Liechtenstein)',
+ 'de_LU' => 'German (Luxembourg)',
+ 'de_CH' => 'German (Switzerland)',
+ 'de' => 'German',
+ 'el_CY' => 'Greek (Cyprus)',
+ 'el_GR' => 'Greek (Greece)',
+ 'el' => 'Greek',
+ 'gu_IN' => 'Gujarati (India)',
+ 'gu' => 'Gujarati',
+ 'guz_KE' => 'Gusii (Kenya)',
+ 'guz' => 'Gusii',
+ 'ha_Latn' => 'Hausa (Latin)',
+ 'ha_Latn_GH' => 'Hausa (Latin, Ghana)',
+ 'ha_Latn_NE' => 'Hausa (Latin, Niger)',
+ 'ha_Latn_NG' => 'Hausa (Latin, Nigeria)',
+ 'ha' => 'Hausa',
+ 'haw_US' => 'Hawaiian (United States)',
+ 'haw' => 'Hawaiian',
+ 'he_IL' => 'Hebrew (Israel)',
+ 'he' => 'Hebrew',
+ 'hi_IN' => 'Hindi (India)',
+ 'hi' => 'Hindi',
+ 'hu_HU' => 'Hungarian (Hungary)',
+ 'hu' => 'Hungarian',
+ 'is_IS' => 'Icelandic (Iceland)',
+ 'is' => 'Icelandic',
+ 'ig_NG' => 'Igbo (Nigeria)',
+ 'ig' => 'Igbo',
+ 'id_ID' => 'Indonesian (Indonesia)',
+ 'id' => 'Indonesian',
+ 'ga_IE' => 'Irish (Ireland)',
+ 'ga' => 'Irish',
+ 'it_IT' => 'Italian (Italy)',
+ 'it_CH' => 'Italian (Switzerland)',
+ 'it' => 'Italian',
+ 'ja_JP' => 'Japanese (Japan)',
+ 'ja' => 'Japanese',
+ 'kea_CV' => 'Kabuverdianu (Cape Verde)',
+ 'kea' => 'Kabuverdianu',
+ 'kab_DZ' => 'Kabyle (Algeria)',
+ 'kab' => 'Kabyle',
+ 'kl_GL' => 'Kalaallisut (Greenland)',
+ 'kl' => 'Kalaallisut',
+ 'kln_KE' => 'Kalenjin (Kenya)',
+ 'kln' => 'Kalenjin',
+ 'kam_KE' => 'Kamba (Kenya)',
+ 'kam' => 'Kamba',
+ 'kn_IN' => 'Kannada (India)',
+ 'kn' => 'Kannada',
+ 'kk_Cyrl' => 'Kazakh (Cyrillic)',
+ 'kk_Cyrl_KZ' => 'Kazakh (Cyrillic, Kazakhstan)',
+ 'kk' => 'Kazakh',
+ 'km_KH' => 'Khmer (Cambodia)',
+ 'km' => 'Khmer',
+ 'ki_KE' => 'Kikuyu (Kenya)',
+ 'ki' => 'Kikuyu',
+ 'rw_RW' => 'Kinyarwanda (Rwanda)',
+ 'rw' => 'Kinyarwanda',
+ 'kok_IN' => 'Konkani (India)',
+ 'kok' => 'Konkani',
+ 'ko_KR' => 'Korean (South Korea)',
+ 'ko' => 'Korean',
+ 'khq_ML' => 'Koyra Chiini (Mali)',
+ 'khq' => 'Koyra Chiini',
+ 'ses_ML' => 'Koyraboro Senni (Mali)',
+ 'ses' => 'Koyraboro Senni',
+ 'lag_TZ' => 'Langi (Tanzania)',
+ 'lag' => 'Langi',
+ 'lv_LV' => 'Latvian (Latvia)',
+ 'lv' => 'Latvian',
+ 'lt_LT' => 'Lithuanian (Lithuania)',
+ 'lt' => 'Lithuanian',
+ 'luo_KE' => 'Luo (Kenya)',
+ 'luo' => 'Luo',
+ 'luy_KE' => 'Luyia (Kenya)',
+ 'luy' => 'Luyia',
+ 'mk_MK' => 'Macedonian (Macedonia)',
+ 'mk' => 'Macedonian',
+ 'jmc_TZ' => 'Machame (Tanzania)',
+ 'jmc' => 'Machame',
+ 'kde_TZ' => 'Makonde (Tanzania)',
+ 'kde' => 'Makonde',
+ 'mg_MG' => 'Malagasy (Madagascar)',
+ 'mg' => 'Malagasy',
+ 'ms_BN' => 'Malay (Brunei)',
+ 'ms_MY' => 'Malay (Malaysia)',
+ 'ms' => 'Malay',
+ 'ml_IN' => 'Malayalam (India)',
+ 'ml' => 'Malayalam',
+ 'mt_MT' => 'Maltese (Malta)',
+ 'mt' => 'Maltese',
+ 'gv_GB' => 'Manx (United Kingdom)',
+ 'gv' => 'Manx',
+ 'mr_IN' => 'Marathi (India)',
+ 'mr' => 'Marathi',
+ 'mas_KE' => 'Masai (Kenya)',
+ 'mas_TZ' => 'Masai (Tanzania)',
+ 'mas' => 'Masai',
+ 'mer_KE' => 'Meru (Kenya)',
+ 'mer' => 'Meru',
+ 'mfe_MU' => 'Morisyen (Mauritius)',
+ 'mfe' => 'Morisyen',
+ 'naq_NA' => 'Nama (Namibia)',
+ 'naq' => 'Nama',
+ 'ne_IN' => 'Nepali (India)',
+ 'ne_NP' => 'Nepali (Nepal)',
+ 'ne' => 'Nepali',
+ 'nd_ZW' => 'North Ndebele (Zimbabwe)',
+ 'nd' => 'North Ndebele',
+ 'nb_NO' => 'Norwegian Bokmål (Norway)',
+ 'nb' => 'Norwegian Bokmål',
+ 'nn_NO' => 'Norwegian Nynorsk (Norway)',
+ 'nn' => 'Norwegian Nynorsk',
+ 'nyn_UG' => 'Nyankole (Uganda)',
+ 'nyn' => 'Nyankole',
+ 'or_IN' => 'Oriya (India)',
+ 'or' => 'Oriya',
+ 'om_ET' => 'Oromo (Ethiopia)',
+ 'om_KE' => 'Oromo (Kenya)',
+ 'om' => 'Oromo',
+ 'ps_AF' => 'Pashto (Afghanistan)',
+ 'ps' => 'Pashto',
+ 'fa_AF' => 'Persian (Afghanistan)',
+ 'fa_IR' => 'Persian (Iran)',
+ 'fa' => 'Persian',
+ 'pl_PL' => 'Polish (Poland)',
+ 'pl' => 'Polish',
+ 'pt_BR' => 'Portuguese (Brazil)',
+ 'pt_GW' => 'Portuguese (Guinea-Bissau)',
+ 'pt_MZ' => 'Portuguese (Mozambique)',
+ 'pt_PT' => 'Portuguese (Portugal)',
+ 'pt' => 'Portuguese',
+ 'pa_Arab' => 'Punjabi (Arabic)',
+ 'pa_Arab_PK' => 'Punjabi (Arabic, Pakistan)',
+ 'pa_Guru' => 'Punjabi (Gurmukhi)',
+ 'pa_Guru_IN' => 'Punjabi (Gurmukhi, India)',
+ 'pa' => 'Punjabi',
+ 'ro_MD' => 'Romanian (Moldova)',
+ 'ro_RO' => 'Romanian (Romania)',
+ 'ro' => 'Romanian',
+ 'rm_CH' => 'Romansh (Switzerland)',
+ 'rm' => 'Romansh',
+ 'rof_TZ' => 'Rombo (Tanzania)',
+ 'rof' => 'Rombo',
+ 'ru_MD' => 'Russian (Moldova)',
+ 'ru_RU' => 'Russian (Russia)',
+ 'ru_UA' => 'Russian (Ukraine)',
+ 'ru' => 'Russian',
+ 'rwk_TZ' => 'Rwa (Tanzania)',
+ 'rwk' => 'Rwa',
+ 'saq_KE' => 'Samburu (Kenya)',
+ 'saq' => 'Samburu',
+ 'sg_CF' => 'Sango (Central African Republic)',
+ 'sg' => 'Sango',
+ 'seh_MZ' => 'Sena (Mozambique)',
+ 'seh' => 'Sena',
+ 'sr_Cyrl' => 'Serbian (Cyrillic)',
+ 'sr_Cyrl_BA' => 'Serbian (Cyrillic, Bosnia and Herzegovina)',
+ 'sr_Cyrl_ME' => 'Serbian (Cyrillic, Montenegro)',
+ 'sr_Cyrl_RS' => 'Serbian (Cyrillic, Serbia)',
+ 'sr_Latn' => 'Serbian (Latin)',
+ 'sr_Latn_BA' => 'Serbian (Latin, Bosnia and Herzegovina)',
+ 'sr_Latn_ME' => 'Serbian (Latin, Montenegro)',
+ 'sr_Latn_RS' => 'Serbian (Latin, Serbia)',
+ 'sr' => 'Serbian',
+ 'sn_ZW' => 'Shona (Zimbabwe)',
+ 'sn' => 'Shona',
+ 'ii_CN' => 'Sichuan Yi (China)',
+ 'ii' => 'Sichuan Yi',
+ 'si_LK' => 'Sinhala (Sri Lanka)',
+ 'si' => 'Sinhala',
+ 'sk_SK' => 'Slovak (Slovakia)',
+ 'sk' => 'Slovak',
+ 'sl_SI' => 'Slovenian (Slovenia)',
+ 'sl' => 'Slovenian',
+ 'xog_UG' => 'Soga (Uganda)',
+ 'xog' => 'Soga',
+ 'so_DJ' => 'Somali (Djibouti)',
+ 'so_ET' => 'Somali (Ethiopia)',
+ 'so_KE' => 'Somali (Kenya)',
+ 'so_SO' => 'Somali (Somalia)',
+ 'so' => 'Somali',
+ 'es_AR' => 'Spanish (Argentina)',
+ 'es_BO' => 'Spanish (Bolivia)',
+ 'es_CL' => 'Spanish (Chile)',
+ 'es_CO' => 'Spanish (Colombia)',
+ 'es_CR' => 'Spanish (Costa Rica)',
+ 'es_DO' => 'Spanish (Dominican Republic)',
+ 'es_EC' => 'Spanish (Ecuador)',
+ 'es_SV' => 'Spanish (El Salvador)',
+ 'es_GQ' => 'Spanish (Equatorial Guinea)',
+ 'es_GT' => 'Spanish (Guatemala)',
+ 'es_HN' => 'Spanish (Honduras)',
+ 'es_419' => 'Spanish (Latin America)',
+ 'es_MX' => 'Spanish (Mexico)',
+ 'es_NI' => 'Spanish (Nicaragua)',
+ 'es_PA' => 'Spanish (Panama)',
+ 'es_PY' => 'Spanish (Paraguay)',
+ 'es_PE' => 'Spanish (Peru)',
+ 'es_PR' => 'Spanish (Puerto Rico)',
+ 'es_ES' => 'Spanish (Spain)',
+ 'es_US' => 'Spanish (United States)',
+ 'es_UY' => 'Spanish (Uruguay)',
+ 'es_VE' => 'Spanish (Venezuela)',
+ 'es' => 'Spanish',
+ 'sw_KE' => 'Swahili (Kenya)',
+ 'sw_TZ' => 'Swahili (Tanzania)',
+ 'sw' => 'Swahili',
+ 'sv_FI' => 'Swedish (Finland)',
+ 'sv_SE' => 'Swedish (Sweden)',
+ 'sv' => 'Swedish',
+ 'gsw_CH' => 'Swiss German (Switzerland)',
+ 'gsw' => 'Swiss German',
+ 'shi_Latn' => 'Tachelhit (Latin)',
+ 'shi_Latn_MA' => 'Tachelhit (Latin, Morocco)',
+ 'shi_Tfng' => 'Tachelhit (Tifinagh)',
+ 'shi_Tfng_MA' => 'Tachelhit (Tifinagh, Morocco)',
+ 'shi' => 'Tachelhit',
+ 'dav_KE' => 'Taita (Kenya)',
+ 'dav' => 'Taita',
+ 'ta_IN' => 'Tamil (India)',
+ 'ta_LK' => 'Tamil (Sri Lanka)',
+ 'ta' => 'Tamil',
+ 'te_IN' => 'Telugu (India)',
+ 'te' => 'Telugu',
+ 'teo_KE' => 'Teso (Kenya)',
+ 'teo_UG' => 'Teso (Uganda)',
+ 'teo' => 'Teso',
+ 'th_TH' => 'Thai (Thailand)',
+ 'th' => 'Thai',
+ 'bo_CN' => 'Tibetan (China)',
+ 'bo_IN' => 'Tibetan (India)',
+ 'bo' => 'Tibetan',
+ 'ti_ER' => 'Tigrinya (Eritrea)',
+ 'ti_ET' => 'Tigrinya (Ethiopia)',
+ 'ti' => 'Tigrinya',
+ 'to_TO' => 'Tonga (Tonga)',
+ 'to' => 'Tonga',
+ 'tr_TR' => 'Turkish (Turkey)',
+ 'tr' => 'Turkish',
+ 'uk_UA' => 'Ukrainian (Ukraine)',
+ 'uk' => 'Ukrainian',
+ 'ur_IN' => 'Urdu (India)',
+ 'ur_PK' => 'Urdu (Pakistan)',
+ 'ur' => 'Urdu',
+ 'uz_Arab' => 'Uzbek (Arabic)',
+ 'uz_Arab_AF' => 'Uzbek (Arabic, Afghanistan)',
+ 'uz_Cyrl' => 'Uzbek (Cyrillic)',
+ 'uz_Cyrl_UZ' => 'Uzbek (Cyrillic, Uzbekistan)',
+ 'uz_Latn' => 'Uzbek (Latin)',
+ 'uz_Latn_UZ' => 'Uzbek (Latin, Uzbekistan)',
+ 'uz' => 'Uzbek',
+ 'vi_VN' => 'Vietnamese (Vietnam)',
+ 'vi' => 'Vietnamese',
+ 'vun_TZ' => 'Vunjo (Tanzania)',
+ 'vun' => 'Vunjo',
+ 'cy_GB' => 'Welsh (United Kingdom)',
+ 'cy' => 'Welsh',
+ 'yo_NG' => 'Yoruba (Nigeria)',
+ 'yo' => 'Yoruba',
+ 'zu_ZA' => 'Zulu (South Africa)',
+ 'zu' => 'Zulu',
+];
+
if(isset($_POST['add_database'])){
// Check if database has been setup already. If it has, direct user to edit directly instead.
@@ -479,9 +917,10 @@ if(isset($_POST['add_company_settings'])){
$phone = preg_replace("/[^0-9]/", '',$_POST['phone']);
$email = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['email'])));
$website = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['website'])));
+ $locale = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['locale'])));
$currency_code = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['currency_code'])));
- mysqli_query($mysqli,"INSERT INTO companies SET company_name = '$name', company_address = '$address', company_city = '$city', company_state = '$state', company_zip = '$zip', company_country = '$country', company_phone = '$phone', company_email = '$email', company_website = '$website', company_currency = '$currency_code', company_created_at = NOW()");
+ mysqli_query($mysqli,"INSERT INTO companies SET company_name = '$name', company_address = '$address', company_city = '$city', company_state = '$state', company_zip = '$zip', company_country = '$country', company_phone = '$phone', company_email = '$email', company_website = '$website', company_locale = '$locale', company_currency = '$currency_code', company_created_at = NOW()");
$company_id = mysqli_insert_id($mysqli);
$config_base_url = $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']);
@@ -970,6 +1409,21 @@ if(isset($_POST['add_telemetry'])){
+