summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-10-25 15:41:46 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-10-25 15:41:46 +0200
commit8df1486ca41edb625feb269fe7f7997fa5ffacfe (patch)
treef7bc978d2ffade72bb5c4f9ee1f4945c3984ec78 /src
parent5f25180b3d79d9a03952217cd77a16601ae0a6d0 (diff)
add all countries
Diffstat (limited to 'src')
-rw-r--r--src/administration.cpp2
-rw-r--r--src/countries.cpp204
-rw-r--r--src/countries/_unimplemented.cpp226
-rw-r--r--src/locales/en.cpp171
-rw-r--r--src/ui/imgui_extensions.cpp2
5 files changed, 599 insertions, 6 deletions
diff --git a/src/administration.cpp b/src/administration.cpp
index d51b1b9..9fdfe7e 100644
--- a/src/administration.cpp
+++ b/src/administration.cpp
@@ -139,6 +139,8 @@ void administration_create()
// Load all tax rates.
for (s32 i = 0; i < country::get_count(); i++)
{
+ if (!country::tax_is_implemented(country::get_code_by_index(i))) continue;
+
tax_rate* tax_rates = (tax_rate*)memops::alloc(sizeof(tax_rate) * 400);
u32 tax_rate_count = country::get_available_tax_rates(country::get_code_by_index(i), tax_rates, 400);
diff --git a/src/countries.cpp b/src/countries.cpp
index d03848b..4456284 100644
--- a/src/countries.cpp
+++ b/src/countries.cpp
@@ -18,11 +18,207 @@
#include "countries.hpp"
#include "countries/nl.cpp"
+#include "countries/_unimplemented.cpp"
-static country_impl country_map[] = {
- _nl_country_impl,
- // Add new countries here.
+country_impl country_map[] = {
+ _af_country_impl, // Afghanistan
+ _al_country_impl, // Albania
+ _dz_country_impl, // Algeria
+ _ad_country_impl, // Andorra
+ _ao_country_impl, // Angola
+ _ag_country_impl, // Antigua and Barbuda
+ _ar_country_impl, // Argentina
+ _am_country_impl, // Armenia
+ _au_country_impl, // Australia
+ _at_country_impl, // Austria
+ _az_country_impl, // Azerbaijan
+ _bs_country_impl, // Bahamas
+ _bh_country_impl, // Bahrain
+ _bd_country_impl, // Bangladesh
+ _bb_country_impl, // Barbados
+ _by_country_impl, // Belarus
+ _be_country_impl, // Belgium
+ _bz_country_impl, // Belize
+ _bj_country_impl, // Benin
+ _bt_country_impl, // Bhutan
+ _bo_country_impl, // Bolivia
+ _ba_country_impl, // Bosnia and Herzegovina
+ _bw_country_impl, // Botswana
+ _br_country_impl, // Brazil
+ _bn_country_impl, // Brunei
+ _bg_country_impl, // Bulgaria
+ _bf_country_impl, // Burkina Faso
+ _bi_country_impl, // Burundi
+ _cv_country_impl, // Cabo Verde
+ _kh_country_impl, // Cambodia
+ _cm_country_impl, // Cameroon
+ _ca_country_impl, // Canada
+ _cf_country_impl, // Central African Republic
+ _td_country_impl, // Chad
+ _cl_country_impl, // Chile
+ _cn_country_impl, // China
+ _co_country_impl, // Colombia
+ _km_country_impl, // Comoros
+ _cg_country_impl, // Congo
+ _cd_country_impl, // Democratic Republic of the Congo
+ _cr_country_impl, // Costa Rica
+ _ci_country_impl, // Côte d’Ivoire
+ _hr_country_impl, // Croatia
+ _cu_country_impl, // Cuba
+ _cy_country_impl, // Cyprus
+ _cz_country_impl, // Czechia
+ _dk_country_impl, // Denmark
+ _dj_country_impl, // Djibouti
+ _dm_country_impl, // Dominica
+ _do_country_impl, // Dominican Republic
+ _ec_country_impl, // Ecuador
+ _eg_country_impl, // Egypt
+ _sv_country_impl, // El Salvador
+ _gq_country_impl, // Equatorial Guinea
+ _er_country_impl, // Eritrea
+ _ee_country_impl, // Estonia
+ _sz_country_impl, // Eswatini
+ _et_country_impl, // Ethiopia
+ _fj_country_impl, // Fiji
+ _fi_country_impl, // Finland
+ _fr_country_impl, // France
+ _ga_country_impl, // Gabon
+ _gm_country_impl, // Gambia
+ _ge_country_impl, // Georgia
+ _de_country_impl, // Germany
+ _gh_country_impl, // Ghana
+ _gr_country_impl, // Greece
+ _gd_country_impl, // Grenada
+ _gt_country_impl, // Guatemala
+ _gn_country_impl, // Guinea
+ _gw_country_impl, // Guinea-Bissau
+ _gy_country_impl, // Guyana
+ _ht_country_impl, // Haiti
+ _hn_country_impl, // Honduras
+ _hu_country_impl, // Hungary
+ _is_country_impl, // Iceland
+ _in_country_impl, // India
+ _id_country_impl, // Indonesia
+ _ir_country_impl, // Iran
+ _iq_country_impl, // Iraq
+ _ie_country_impl, // Ireland
+ _il_country_impl, // Israel
+ _it_country_impl, // Italy
+ _jm_country_impl, // Jamaica
+ _jp_country_impl, // Japan
+ _jo_country_impl, // Jordan
+ _kz_country_impl, // Kazakhstan
+ _ke_country_impl, // Kenya
+ _ki_country_impl, // Kiribati
+ _kp_country_impl, // North Korea
+ _kr_country_impl, // South Korea
+ _kw_country_impl, // Kuwait
+ _kg_country_impl, // Kyrgyzstan
+ _la_country_impl, // Laos
+ _lv_country_impl, // Latvia
+ _lb_country_impl, // Lebanon
+ _ls_country_impl, // Lesotho
+ _lr_country_impl, // Liberia
+ _ly_country_impl, // Libya
+ _li_country_impl, // Liechtenstein
+ _lt_country_impl, // Lithuania
+ _lu_country_impl, // Luxembourg
+ _mg_country_impl, // Madagascar
+ _mw_country_impl, // Malawi
+ _my_country_impl, // Malaysia
+ _mv_country_impl, // Maldives
+ _ml_country_impl, // Mali
+ _mt_country_impl, // Malta
+ _mh_country_impl, // Marshall Islands
+ _mr_country_impl, // Mauritania
+ _mu_country_impl, // Mauritius
+ _mx_country_impl, // Mexico
+ _fm_country_impl, // Micronesia
+ _md_country_impl, // Moldova
+ _mc_country_impl, // Monaco
+ _mn_country_impl, // Mongolia
+ _me_country_impl, // Montenegro
+ _ma_country_impl, // Morocco
+ _mz_country_impl, // Mozambique
+ _mm_country_impl, // Myanmar
+ _na_country_impl, // Namibia
+ _nr_country_impl, // Nauru
+ _np_country_impl, // Nepal
+ _nl_country_impl, // Netherlands
+ _nz_country_impl, // New Zealand
+ _ni_country_impl, // Nicaragua
+ _ne_country_impl, // Niger
+ _ng_country_impl, // Nigeria
+ _mk_country_impl, // North Macedonia
+ _no_country_impl, // Norway
+ _om_country_impl, // Oman
+ _pk_country_impl, // Pakistan
+ _pw_country_impl, // Palau
+ _ps_country_impl, // Palestine
+ _pa_country_impl, // Panama
+ _pg_country_impl, // Papua New Guinea
+ _py_country_impl, // Paraguay
+ _pe_country_impl, // Peru
+ _ph_country_impl, // Philippines
+ _pl_country_impl, // Poland
+ _pt_country_impl, // Portugal
+ _qa_country_impl, // Qatar
+ _ro_country_impl, // Romania
+ _ru_country_impl, // Russia
+ _rw_country_impl, // Rwanda
+ _kn_country_impl, // Saint Kitts and Nevis
+ _lc_country_impl, // Saint Lucia
+ _vc_country_impl, // Saint Vincent and the Grenadines
+ _ws_country_impl, // Samoa
+ _sm_country_impl, // San Marino
+ _st_country_impl, // São Tomé and Príncipe
+ _sa_country_impl, // Saudi Arabia
+ _sn_country_impl, // Senegal
+ _rs_country_impl, // Serbia
+ _sc_country_impl, // Seychelles
+ _sl_country_impl, // Sierra Leone
+ _sg_country_impl, // Singapore
+ _sk_country_impl, // Slovakia
+ _si_country_impl, // Slovenia
+ _sb_country_impl, // Solomon Islands
+ _so_country_impl, // Somalia
+ _za_country_impl, // South Africa
+ _ss_country_impl, // South Sudan
+ _es_country_impl, // Spain
+ _lk_country_impl, // Sri Lanka
+ _sd_country_impl, // Sudan
+ _sr_country_impl, // Suriname
+ _se_country_impl, // Sweden
+ _ch_country_impl, // Switzerland
+ _sy_country_impl, // Syria
+ _tw_country_impl, // Taiwan
+ _tj_country_impl, // Tajikistan
+ _tz_country_impl, // Tanzania
+ _th_country_impl, // Thailand
+ _tl_country_impl, // Timor-Leste
+ _tg_country_impl, // Togo
+ _to_country_impl, // Tonga
+ _tt_country_impl, // Trinidad and Tobago
+ _tn_country_impl, // Tunisia
+ _tr_country_impl, // Türkiye
+ _tm_country_impl, // Turkmenistan
+ _tv_country_impl, // Tuvalu
+ _ug_country_impl, // Uganda
+ _ua_country_impl, // Ukraine
+ _ae_country_impl, // United Arab Emirates
+ _gb_country_impl, // United Kingdom
+ _us_country_impl, // United States
+ _uy_country_impl, // Uruguay
+ _uz_country_impl, // Uzbekistan
+ _vu_country_impl, // Vanuatu
+ _va_country_impl, // Vatican City
+ _ve_country_impl, // Venezuela
+ _vn_country_impl, // Vietnam
+ _ye_country_impl, // Yemen
+ _zm_country_impl, // Zambia
+ _zw_country_impl // Zimbabwe
};
+
static const u32 country_map_count = sizeof(country_map) / sizeof(country_map[0]);
s32 country::get_count()
@@ -68,7 +264,7 @@ bool country::tax_is_implemented(char* country_code)
if (index == -1) return false;
return country_map[index].fill_tax_report_with_categories &&
- country_map[index].add_billing_item_to_tax_report;
+ country_map[index].add_billing_item_to_tax_report && country_map[index].get_available_tax_rates;
}
void country::fill_tax_report_with_categories(char* country_code, tax_report* report)
diff --git a/src/countries/_unimplemented.cpp b/src/countries/_unimplemented.cpp
new file mode 100644
index 0000000..4244f2c
--- /dev/null
+++ b/src/countries/_unimplemented.cpp
@@ -0,0 +1,226 @@
+/*
+* Copyright (c) 2025 Aldrik Ramaekers <aldrik.ramaekers@gmail.com>
+*
+* Permission to use, copy, modify, and/or distribute this software for any
+* purpose with or without fee is hereby granted, provided that the above
+* copyright notice and this permission notice appear in all copies.
+*
+* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+#include "countries.hpp"
+
+// === Europe (EU + Non-EU) ===
+country_impl _at_country_impl = { "AT", true }; // Austria
+country_impl _be_country_impl = { "BE", true }; // Belgium
+country_impl _bg_country_impl = { "BG", true }; // Bulgaria
+country_impl _hr_country_impl = { "HR", true }; // Croatia
+country_impl _cy_country_impl = { "CY", true }; // Cyprus
+country_impl _cz_country_impl = { "CZ", true }; // Czechia
+country_impl _dk_country_impl = { "DK", true }; // Denmark
+country_impl _ee_country_impl = { "EE", true }; // Estonia
+country_impl _fi_country_impl = { "FI", true }; // Finland
+country_impl _fr_country_impl = { "FR", true }; // France
+country_impl _de_country_impl = { "DE", true }; // Germany
+country_impl _gr_country_impl = { "GR", true }; // Greece
+country_impl _hu_country_impl = { "HU", true }; // Hungary
+country_impl _ie_country_impl = { "IE", true }; // Ireland
+country_impl _it_country_impl = { "IT", true }; // Italy
+country_impl _lv_country_impl = { "LV", true }; // Latvia
+country_impl _lt_country_impl = { "LT", true }; // Lithuania
+country_impl _lu_country_impl = { "LU", true }; // Luxembourg
+country_impl _mt_country_impl = { "MT", true }; // Malta
+country_impl _pl_country_impl = { "PL", true }; // Poland
+country_impl _pt_country_impl = { "PT", true }; // Portugal
+country_impl _ro_country_impl = { "RO", true }; // Romania
+country_impl _sk_country_impl = { "SK", true }; // Slovakia
+country_impl _si_country_impl = { "SI", true }; // Slovenia
+country_impl _es_country_impl = { "ES", true }; // Spain
+country_impl _se_country_impl = { "SE", true }; // Sweden
+
+// Non-EU European countries
+country_impl _ad_country_impl = { "AD", false }; // Andorra
+country_impl _mc_country_impl = { "MC", false }; // Monaco
+country_impl _al_country_impl = { "AL", false }; // Albania
+country_impl _ba_country_impl = { "BA", false }; // Bosnia and Herzegovina
+country_impl _by_country_impl = { "BY", false }; // Belarus
+country_impl _ch_country_impl = { "CH", false }; // Switzerland
+country_impl _gb_country_impl = { "GB", false }; // United Kingdom
+country_impl _is_country_impl = { "IS", false }; // Iceland
+country_impl _li_country_impl = { "LI", false }; // Liechtenstein
+country_impl _md_country_impl = { "MD", false }; // Moldova
+country_impl _me_country_impl = { "ME", false }; // Montenegro
+country_impl _mk_country_impl = { "MK", false }; // North Macedonia
+country_impl _no_country_impl = { "NO", false }; // Norway
+country_impl _rs_country_impl = { "RS", false }; // Serbia
+country_impl _sm_country_impl = { "SM", false }; // San Marino
+country_impl _ua_country_impl = { "UA", false }; // Ukraine
+country_impl _va_country_impl = { "VA", false }; // Vatican City
+
+// === North America ===
+country_impl _ag_country_impl = { "AG", false }; // Antigua and Barbuda
+country_impl _bs_country_impl = { "BS", false }; // Bahamas
+country_impl _bb_country_impl = { "BB", false }; // Barbados
+country_impl _bz_country_impl = { "BZ", false }; // Belize
+country_impl _ca_country_impl = { "CA", false }; // Canada
+country_impl _cr_country_impl = { "CR", false }; // Costa Rica
+country_impl _cu_country_impl = { "CU", false }; // Cuba
+country_impl _dm_country_impl = { "DM", false }; // Dominica
+country_impl _do_country_impl = { "DO", false }; // Dominican Republic
+country_impl _sv_country_impl = { "SV", false }; // El Salvador
+country_impl _gd_country_impl = { "GD", false }; // Grenada
+country_impl _gt_country_impl = { "GT", false }; // Guatemala
+country_impl _ht_country_impl = { "HT", false }; // Haiti
+country_impl _hn_country_impl = { "HN", false }; // Honduras
+country_impl _jm_country_impl = { "JM", false }; // Jamaica
+country_impl _mx_country_impl = { "MX", false }; // Mexico
+country_impl _ni_country_impl = { "NI", false }; // Nicaragua
+country_impl _pa_country_impl = { "PA", false }; // Panama
+country_impl _kn_country_impl = { "KN", false }; // Saint Kitts and Nevis
+country_impl _lc_country_impl = { "LC", false }; // Saint Lucia
+country_impl _vc_country_impl = { "VC", false }; // Saint Vincent and the Grenadines
+country_impl _tt_country_impl = { "TT", false }; // Trinidad and Tobago
+country_impl _us_country_impl = { "US", false }; // United States
+
+// === South America ===
+country_impl _ar_country_impl = { "AR", false }; // Argentina
+country_impl _bo_country_impl = { "BO", false }; // Bolivia
+country_impl _br_country_impl = { "BR", false }; // Brazil
+country_impl _cl_country_impl = { "CL", false }; // Chile
+country_impl _co_country_impl = { "CO", false }; // Colombia
+country_impl _ec_country_impl = { "EC", false }; // Ecuador
+country_impl _gy_country_impl = { "GY", false }; // Guyana
+country_impl _pe_country_impl = { "PE", false }; // Peru
+country_impl _py_country_impl = { "PY", false }; // Paraguay
+country_impl _sr_country_impl = { "SR", false }; // Suriname
+country_impl _uy_country_impl = { "UY", false }; // Uruguay
+country_impl _ve_country_impl = { "VE", false }; // Venezuela
+
+// === Africa ===
+country_impl _dz_country_impl = { "DZ", false }; // Algeria
+country_impl _ao_country_impl = { "AO", false }; // Angola
+country_impl _bj_country_impl = { "BJ", false }; // Benin
+country_impl _bw_country_impl = { "BW", false }; // Botswana
+country_impl _bf_country_impl = { "BF", false }; // Burkina Faso
+country_impl _bi_country_impl = { "BI", false }; // Burundi
+country_impl _cv_country_impl = { "CV", false }; // Cabo Verde
+country_impl _cm_country_impl = { "CM", false }; // Cameroon
+country_impl _cf_country_impl = { "CF", false }; // Central African Republic
+country_impl _td_country_impl = { "TD", false }; // Chad
+country_impl _km_country_impl = { "KM", false }; // Comoros
+country_impl _cg_country_impl = { "CG", false }; // Congo
+country_impl _cd_country_impl = { "CD", false }; // Democratic Republic of the Congo
+country_impl _ci_country_impl = { "CI", false }; // Côte d’Ivoire
+country_impl _dj_country_impl = { "DJ", false }; // Djibouti
+country_impl _eg_country_impl = { "EG", false }; // Egypt
+country_impl _gq_country_impl = { "GQ", false }; // Equatorial Guinea
+country_impl _er_country_impl = { "ER", false }; // Eritrea
+country_impl _sz_country_impl = { "SZ", false }; // Eswatini
+country_impl _et_country_impl = { "ET", false }; // Ethiopia
+country_impl _ga_country_impl = { "GA", false }; // Gabon
+country_impl _gm_country_impl = { "GM", false }; // Gambia
+country_impl _gh_country_impl = { "GH", false }; // Ghana
+country_impl _gn_country_impl = { "GN", false }; // Guinea
+country_impl _gw_country_impl = { "GW", false }; // Guinea-Bissau
+country_impl _ke_country_impl = { "KE", false }; // Kenya
+country_impl _ls_country_impl = { "LS", false }; // Lesotho
+country_impl _lr_country_impl = { "LR", false }; // Liberia
+country_impl _ly_country_impl = { "LY", false }; // Libya
+country_impl _mg_country_impl = { "MG", false }; // Madagascar
+country_impl _mw_country_impl = { "MW", false }; // Malawi
+country_impl _ml_country_impl = { "ML", false }; // Mali
+country_impl _mr_country_impl = { "MR", false }; // Mauritania
+country_impl _mu_country_impl = { "MU", false }; // Mauritius
+country_impl _ma_country_impl = { "MA", false }; // Morocco
+country_impl _mz_country_impl = { "MZ", false }; // Mozambique
+country_impl _na_country_impl = { "NA", false }; // Namibia
+country_impl _ne_country_impl = { "NE", false }; // Niger
+country_impl _ng_country_impl = { "NG", false }; // Nigeria
+country_impl _rw_country_impl = { "RW", false }; // Rwanda
+country_impl _st_country_impl = { "ST", false }; // São Tomé and Príncipe
+country_impl _sn_country_impl = { "SN", false }; // Senegal
+country_impl _sc_country_impl = { "SC", false }; // Seychelles
+country_impl _sl_country_impl = { "SL", false }; // Sierra Leone
+country_impl _so_country_impl = { "SO", false }; // Somalia
+country_impl _za_country_impl = { "ZA", false }; // South Africa
+country_impl _ss_country_impl = { "SS", false }; // South Sudan
+country_impl _sd_country_impl = { "SD", false }; // Sudan
+country_impl _tz_country_impl = { "TZ", false }; // Tanzania
+country_impl _tg_country_impl = { "TG", false }; // Togo
+country_impl _tn_country_impl = { "TN", false }; // Tunisia
+country_impl _ug_country_impl = { "UG", false }; // Uganda
+country_impl _zm_country_impl = { "ZM", false }; // Zambia
+country_impl _zw_country_impl = { "ZW", false }; // Zimbabwe
+
+// === Asia ===
+country_impl _ru_country_impl = { "RU", false }; // Russia
+country_impl _af_country_impl = { "AF", false }; // Afghanistan
+country_impl _am_country_impl = { "AM", false }; // Armenia
+country_impl _az_country_impl = { "AZ", false }; // Azerbaijan
+country_impl _bh_country_impl = { "BH", false }; // Bahrain
+country_impl _bd_country_impl = { "BD", false }; // Bangladesh
+country_impl _bt_country_impl = { "BT", false }; // Bhutan
+country_impl _bn_country_impl = { "BN", false }; // Brunei
+country_impl _kh_country_impl = { "KH", false }; // Cambodia
+country_impl _cn_country_impl = { "CN", false }; // China
+country_impl _ge_country_impl = { "GE", false }; // Georgia
+country_impl _in_country_impl = { "IN", false }; // India
+country_impl _id_country_impl = { "ID", false }; // Indonesia
+country_impl _ir_country_impl = { "IR", false }; // Iran
+country_impl _iq_country_impl = { "IQ", false }; // Iraq
+country_impl _il_country_impl = { "IL", false }; // Israel
+country_impl _jp_country_impl = { "JP", false }; // Japan
+country_impl _jo_country_impl = { "JO", false }; // Jordan
+country_impl _kz_country_impl = { "KZ", false }; // Kazakhstan
+country_impl _kw_country_impl = { "KW", false }; // Kuwait
+country_impl _kg_country_impl = { "KG", false }; // Kyrgyzstan
+country_impl _la_country_impl = { "LA", false }; // Laos
+country_impl _lb_country_impl = { "LB", false }; // Lebanon
+country_impl _my_country_impl = { "MY", false }; // Malaysia
+country_impl _mv_country_impl = { "MV", false }; // Maldives
+country_impl _mn_country_impl = { "MN", false }; // Mongolia
+country_impl _mm_country_impl = { "MM", false }; // Myanmar
+country_impl _np_country_impl = { "NP", false }; // Nepal
+country_impl _kp_country_impl = { "KP", false }; // North Korea
+country_impl _om_country_impl = { "OM", false }; // Oman
+country_impl _pk_country_impl = { "PK", false }; // Pakistan
+country_impl _ps_country_impl = { "PS", false }; // Palestine
+country_impl _ph_country_impl = { "PH", false }; // Philippines
+country_impl _qa_country_impl = { "QA", false }; // Qatar
+country_impl _sa_country_impl = { "SA", false }; // Saudi Arabia
+country_impl _sg_country_impl = { "SG", false }; // Singapore
+country_impl _kr_country_impl = { "KR", false }; // South Korea
+country_impl _lk_country_impl = { "LK", false }; // Sri Lanka
+country_impl _sy_country_impl = { "SY", false }; // Syria
+country_impl _tw_country_impl = { "TW", false }; // Taiwan
+country_impl _tj_country_impl = { "TJ", false }; // Tajikistan
+country_impl _th_country_impl = { "TH", false }; // Thailand
+country_impl _tl_country_impl = { "TL", false }; // Timor-Leste
+country_impl _tr_country_impl = { "TR", false }; // Türkiye
+country_impl _tm_country_impl = { "TM", false }; // Turkmenistan
+country_impl _ae_country_impl = { "AE", false }; // United Arab Emirates
+country_impl _uz_country_impl = { "UZ", false }; // Uzbekistan
+country_impl _vn_country_impl = { "VN", false }; // Vietnam
+country_impl _ye_country_impl = { "YE", false }; // Yemen
+
+// === Oceania ===
+country_impl _au_country_impl = { "AU", false }; // Australia
+country_impl _fj_country_impl = { "FJ", false }; // Fiji
+country_impl _ki_country_impl = { "KI", false }; // Kiribati
+country_impl _mh_country_impl = { "MH", false }; // Marshall Islands
+country_impl _fm_country_impl = { "FM", false }; // Micronesia
+country_impl _nr_country_impl = { "NR", false }; // Nauru
+country_impl _nz_country_impl = { "NZ", false }; // New Zealand
+country_impl _pw_country_impl = { "PW", false }; // Palau
+country_impl _pg_country_impl = { "PG", false }; // Papua New Guinea
+country_impl _ws_country_impl = { "WS", false }; // Samoa
+country_impl _sb_country_impl = { "SB", false }; // Solomon Islands
+country_impl _to_country_impl = { "TO", false }; // Tonga
+country_impl _tv_country_impl = { "TV", false }; // Tuvalu
+country_impl _vu_country_impl = { "VU", false }; // Vanuatu
diff --git a/src/locales/en.cpp b/src/locales/en.cpp
index 7a98d44..062460c 100644
--- a/src/locales/en.cpp
+++ b/src/locales/en.cpp
@@ -60,33 +60,202 @@ locale_entry en_locales[] = {
{"costcenter.other_specialized", "Other / Specialized"},
// Countries
+ { "country.AF", "Afghanistan" },
+ { "country.AL", "Albania" },
+ { "country.DZ", "Algeria" },
+ { "country.AD", "Andorra" },
+ { "country.AO", "Angola" },
+ { "country.AG", "Antigua and Barbuda" },
+ { "country.AR", "Argentina" },
+ { "country.AM", "Armenia" },
+ { "country.AU", "Australia" },
{ "country.AT", "Austria" },
+ { "country.AZ", "Azerbaijan" },
+ { "country.BS", "Bahamas" },
+ { "country.BH", "Bahrain" },
+ { "country.BD", "Bangladesh" },
+ { "country.BB", "Barbados" },
+ { "country.BY", "Belarus" },
{ "country.BE", "Belgium" },
+ { "country.BZ", "Belize" },
+ { "country.BJ", "Benin" },
+ { "country.BT", "Bhutan" },
+ { "country.BO", "Bolivia" },
+ { "country.BA", "Bosnia and Herzegovina" },
+ { "country.BW", "Botswana" },
+ { "country.BR", "Brazil" },
+ { "country.BN", "Brunei" },
{ "country.BG", "Bulgaria" },
+ { "country.BF", "Burkina Faso" },
+ { "country.BI", "Burundi" },
+ { "country.CV", "Cabo Verde" },
+ { "country.KH", "Cambodia" },
+ { "country.CM", "Cameroon" },
+ { "country.CA", "Canada" },
+ { "country.CF", "Central African Republic" },
+ { "country.TD", "Chad" },
+ { "country.CL", "Chile" },
+ { "country.CN", "China" },
+ { "country.CO", "Colombia" },
+ { "country.KM", "Comoros" },
+ { "country.CG", "Congo" },
+ { "country.CD", "Democratic Republic of the Congo" },
+ { "country.CR", "Costa Rica" },
+ { "country.CI", "Côte d’Ivoire" },
{ "country.HR", "Croatia" },
+ { "country.CU", "Cuba" },
{ "country.CY", "Cyprus" },
- { "country.CZ", "Czech Republic" },
+ { "country.CZ", "Czechia" },
{ "country.DK", "Denmark" },
+ { "country.DJ", "Djibouti" },
+ { "country.DM", "Dominica" },
+ { "country.DO", "Dominican Republic" },
+ { "country.EC", "Ecuador" },
+ { "country.EG", "Egypt" },
+ { "country.SV", "El Salvador" },
+ { "country.GQ", "Equatorial Guinea" },
+ { "country.ER", "Eritrea" },
{ "country.EE", "Estonia" },
+ { "country.SZ", "Eswatini" },
+ { "country.ET", "Ethiopia" },
+ { "country.FJ", "Fiji" },
{ "country.FI", "Finland" },
{ "country.FR", "France" },
+ { "country.GA", "Gabon" },
+ { "country.GM", "Gambia" },
+ { "country.GE", "Georgia" },
{ "country.DE", "Germany" },
+ { "country.GH", "Ghana" },
{ "country.GR", "Greece" },
+ { "country.GD", "Grenada" },
+ { "country.GT", "Guatemala" },
+ { "country.GN", "Guinea" },
+ { "country.GW", "Guinea-Bissau" },
+ { "country.GY", "Guyana" },
+ { "country.HT", "Haiti" },
+ { "country.HN", "Honduras" },
{ "country.HU", "Hungary" },
+ { "country.IS", "Iceland" },
+ { "country.IN", "India" },
+ { "country.ID", "Indonesia" },
+ { "country.IR", "Iran" },
+ { "country.IQ", "Iraq" },
{ "country.IE", "Ireland" },
+ { "country.IL", "Israel" },
{ "country.IT", "Italy" },
+ { "country.JM", "Jamaica" },
+ { "country.JP", "Japan" },
+ { "country.JO", "Jordan" },
+ { "country.KZ", "Kazakhstan" },
+ { "country.KE", "Kenya" },
+ { "country.KI", "Kiribati" },
+ { "country.KP", "North Korea" },
+ { "country.KR", "South Korea" },
+ { "country.KW", "Kuwait" },
+ { "country.KG", "Kyrgyzstan" },
+ { "country.LA", "Laos" },
{ "country.LV", "Latvia" },
+ { "country.LB", "Lebanon" },
+ { "country.LS", "Lesotho" },
+ { "country.LR", "Liberia" },
+ { "country.LY", "Libya" },
+ { "country.LI", "Liechtenstein" },
{ "country.LT", "Lithuania" },
{ "country.LU", "Luxembourg" },
+ { "country.MG", "Madagascar" },
+ { "country.MW", "Malawi" },
+ { "country.MY", "Malaysia" },
+ { "country.MV", "Maldives" },
+ { "country.ML", "Mali" },
{ "country.MT", "Malta" },
+ { "country.MH", "Marshall Islands" },
+ { "country.MR", "Mauritania" },
+ { "country.MU", "Mauritius" },
+ { "country.MX", "Mexico" },
+ { "country.FM", "Micronesia" },
+ { "country.MD", "Moldova" },
+ { "country.MC", "Monaco" },
+ { "country.MN", "Mongolia" },
+ { "country.ME", "Montenegro" },
+ { "country.MA", "Morocco" },
+ { "country.MZ", "Mozambique" },
+ { "country.MM", "Myanmar" },
+ { "country.NA", "Namibia" },
+ { "country.NR", "Nauru" },
+ { "country.NP", "Nepal" },
{ "country.NL", "Netherlands" },
+ { "country.NZ", "New Zealand" },
+ { "country.NI", "Nicaragua" },
+ { "country.NE", "Niger" },
+ { "country.NG", "Nigeria" },
+ { "country.MK", "North Macedonia" },
+ { "country.NO", "Norway" },
+ { "country.OM", "Oman" },
+ { "country.PK", "Pakistan" },
+ { "country.PW", "Palau" },
+ { "country.PS", "Palestine" },
+ { "country.PA", "Panama" },
+ { "country.PG", "Papua New Guinea" },
+ { "country.PY", "Paraguay" },
+ { "country.PE", "Peru" },
+ { "country.PH", "Philippines" },
{ "country.PL", "Poland" },
{ "country.PT", "Portugal" },
+ { "country.QA", "Qatar" },
{ "country.RO", "Romania" },
+ { "country.RU", "Russia" },
+ { "country.RW", "Rwanda" },
+ { "country.KN", "Saint Kitts and Nevis" },
+ { "country.LC", "Saint Lucia" },
+ { "country.VC", "Saint Vincent and the Grenadines" },
+ { "country.WS", "Samoa" },
+ { "country.SM", "San Marino" },
+ { "country.ST", "São Tomé and Príncipe" },
+ { "country.SA", "Saudi Arabia" },
+ { "country.SN", "Senegal" },
+ { "country.RS", "Serbia" },
+ { "country.SC", "Seychelles" },
+ { "country.SL", "Sierra Leone" },
+ { "country.SG", "Singapore" },
{ "country.SK", "Slovakia" },
{ "country.SI", "Slovenia" },
+ { "country.SB", "Solomon Islands" },
+ { "country.SO", "Somalia" },
+ { "country.ZA", "South Africa" },
+ { "country.SS", "South Sudan" },
{ "country.ES", "Spain" },
+ { "country.LK", "Sri Lanka" },
+ { "country.SD", "Sudan" },
+ { "country.SR", "Suriname" },
{ "country.SE", "Sweden" },
+ { "country.CH", "Switzerland" },
+ { "country.SY", "Syria" },
+ { "country.TW", "Taiwan" },
+ { "country.TJ", "Tajikistan" },
+ { "country.TZ", "Tanzania" },
+ { "country.TH", "Thailand" },
+ { "country.TL", "Timor-Leste" },
+ { "country.TG", "Togo" },
+ { "country.TO", "Tonga" },
+ { "country.TT", "Trinidad and Tobago" },
+ { "country.TN", "Tunisia" },
+ { "country.TR", "Türkiye" },
+ { "country.TM", "Turkmenistan" },
+ { "country.TV", "Tuvalu" },
+ { "country.UG", "Uganda" },
+ { "country.UA", "Ukraine" },
+ { "country.AE", "United Arab Emirates" },
+ { "country.GB", "United Kingdom" },
+ { "country.US", "United States" },
+ { "country.UY", "Uruguay" },
+ { "country.UZ", "Uzbekistan" },
+ { "country.VU", "Vanuatu" },
+ { "country.VA", "Vatican City" },
+ { "country.VE", "Venezuela" },
+ { "country.VN", "Vietnam" },
+ { "country.YE", "Yemen" },
+ { "country.ZM", "Zambia" },
+ { "country.ZW", "Zimbabwe" },
// Navigation.
{"nav.invoices", "Invoices"},
diff --git a/src/ui/imgui_extensions.cpp b/src/ui/imgui_extensions.cpp
index b59c13f..b3b20f8 100644
--- a/src/ui/imgui_extensions.cpp
+++ b/src/ui/imgui_extensions.cpp
@@ -88,7 +88,7 @@ namespace ImGui
float widthAvailable = ImGui::GetContentRegionAvail().x;
ImGui::SetNextItemWidth(widthAvailable*0.5f);
- const char* countries[30];
+ const char* countries[300];
for (int x = 0; x < country::get_count(); x++)
{
char locale_str[20];