summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@mailbox.org>2026-01-11 18:12:51 +0100
committerAldrik Ramaekers <aldrik@mailbox.org>2026-01-11 18:12:51 +0100
commitc011cfe0cb4b2b29c2e1d48b5bfd6db1d7fdc6d8 (patch)
tree9c3b1fed55c2da1015f37df2af29e9f7b864252f
parent1ab0d5fb96624e0fb92b961fc02b3e6344126033 (diff)
localizations
-rw-r--r--include/config.hpp1
-rw-r--r--libs/imgui/imgui.cpp2
-rw-r--r--src/exporter.cpp4
-rw-r--r--src/locales/en.cpp15
-rw-r--r--src/ui/imgui_extensions.cpp6
-rw-r--r--src/ui/ui_invoices.cpp4
-rw-r--r--src/ui/ui_settings.cpp13
-rw-r--r--src/ui/ui_setup.cpp4
8 files changed, 35 insertions, 14 deletions
diff --git a/include/config.hpp b/include/config.hpp
index b7b38d5..84773d1 100644
--- a/include/config.hpp
+++ b/include/config.hpp
@@ -30,6 +30,7 @@
#define u32 uint32_t
#define u64 uint64_t
+#define SIMULATE_EMAIL_FAILURE 1
#define SIMULATE_EMAIL 1
#define SIMULATE_SLOW_DISK 0
#define SIMULATE_WRITE_FAILURE 0
diff --git a/libs/imgui/imgui.cpp b/libs/imgui/imgui.cpp
index d3d82d4..e42993c 100644
--- a/libs/imgui/imgui.cpp
+++ b/libs/imgui/imgui.cpp
@@ -16701,7 +16701,7 @@ void ImGui::LoadingIndicatorCircle(const float indicator_radius,
const auto degree_offset = 2.0f * IM_PI / circle_count;
for (int i = 0; i < circle_count; ++i) {
const auto x = updated_indicator_radius * sin(degree_offset * i);
- const auto y = updated_indicator_radius * cos(degree_offset * i);
+ const auto y = updated_indicator_radius * cos(degree_offset * i) + 2.0f;
#define max(a,b) (((a)>(b))?(a):(b))
diff --git a/src/exporter.cpp b/src/exporter.cpp
index 21ff778..5f1a6c3 100644
--- a/src/exporter.cpp
+++ b/src/exporter.cpp
@@ -45,6 +45,10 @@ static int _send_email_t(void* arg) {
exporter::email_provider_impl impl = exporter::get_email_provider_implementation(administration::get_email_service().provider);
request->error = impl.send_email(request->sender, request->recipient, request->subject, request->text);
+ #if SIMULATE_EMAIL_FAILURE
+ request->error = E_ERR_FAILED_REQUEST;
+ #endif
+
request->status = exporter::export_status::EXPORT_DONE;
request->done_at = time(NULL);
diff --git a/src/locales/en.cpp b/src/locales/en.cpp
index 634b8b2..c03fcc3 100644
--- a/src/locales/en.cpp
+++ b/src/locales/en.cpp
@@ -42,6 +42,10 @@ locale_entry en_locales[] = {
{"ui.fileselect.selectDestination", "Select destination"},
{"ui.fileselect.selectSaveFile", "Select save file"},
+ // Setup page.
+ {"ui.setup.load_administration", ICON_FA_FILE_IMPORT " Load administration"},
+ {"ui.setup.create_administration", ICON_FA_FOLDER_PLUS " Create administration"},
+
{"ui.menu.file", "File"},
{"ui.menu.file.new", "New"},
{"ui.menu.file.open", "Open"},
@@ -57,6 +61,9 @@ locale_entry en_locales[] = {
{"form.back", ICON_FA_CARET_SQUARE_LEFT" Back"},
{"form.save", ICON_FA_SAVE" Save"},
{"form.cancel", "Cancel"},
+ {"form.sending", "Sending"},
+ {"form.success", "Success"},
+ {"form.failed", "Failed"},
{"form.yes", "Yes"},
{"form.no", "No"},
{"form.change", ICON_FA_PEN_SQUARE" Change"},
@@ -334,9 +341,11 @@ locale_entry en_locales[] = {
{"settings.services.ai_service", "AI Service"},
{"settings.services.ai_service.provider", "Provider"},
{"settings.services.ai_service.model", "Model"},
+ {"settings.services.ai_service.apikey", "API key"},
- {"settings.services.ai_service.privkey", "Public key"},
- {"settings.services.ai_service.pubkey", "Private key"},
+ {"settings.services.ai_service", "Email Service"},
+ {"settings.services.email_service.provider", "Provider"},
+ {"settings.services.email_service.apikey", "API key"},
// Invoice/expense strings.
{"invoice.form.costcenter", "Cost center"},
@@ -753,6 +762,8 @@ locale_entry en_locales[] = {
// Activity strings.
{"activity.update_invoice", "updated invoice"},
{"activity.add_invoice", "created invoice"},
+ {"activity.invoice_status_changed", "Invoice status changed"},
+ {"activity.email_sent", "Sent email"},
};
int en_locale_count = sizeof(en_locales) / sizeof(en_locales[0]); \ No newline at end of file
diff --git a/src/ui/imgui_extensions.cpp b/src/ui/imgui_extensions.cpp
index e3e917c..496bbe2 100644
--- a/src/ui/imgui_extensions.cpp
+++ b/src/ui/imgui_extensions.cpp
@@ -814,7 +814,7 @@ namespace ImGui
{
if (ImGui::BeginComboPreview())
{
- ImGui::Text("Sending"); // @Localize
+ ImGui::Text(locale::get("form.sending"));
ImGui::SameLine();
ImGui::LoadingIndicatorCircleSmall();
ImGui::EndComboPreview();
@@ -830,11 +830,11 @@ namespace ImGui
{
if (last_err == E_ERR_SUCCESS) {
DrawSuccessMark(0, false);
- ImGui::Text("Success"); // @Localize
+ ImGui::Text(locale::get("form.success"));
}
else {
DrawFailureMark(0, false);
- ImGui::Text("Failed"); // @Localize
+ ImGui::Text(locale::get("form.failure"));
}
ImGui::EndComboPreview();
}
diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp
index e6ee7d3..ffdfb9b 100644
--- a/src/ui/ui_invoices.cpp
+++ b/src/ui/ui_invoices.cpp
@@ -492,8 +492,8 @@ static void draw_send_options()
if (status == E_ERR_SUCCESS) {
active_invoice.extras.status = invoice_status::INVOICE_SENT;
administration::invoice_update(&active_invoice);
- administration::activity_add(ACTIVITY_USER, active_invoice.id, "Invoice status changed"); // @locale
- administration::activity_add(ACTIVITY_USER, active_invoice.id, "Sent email"); // @locale
+ administration::activity_add(ACTIVITY_USER, active_invoice.id, locale::get("activity.invoice_status_changed"));
+ administration::activity_add(ACTIVITY_USER, active_invoice.id, locale::get("activity.email_sent"));
_reload_activities();
}
diff --git a/src/ui/ui_settings.cpp b/src/ui/ui_settings.cpp
index 95f24e3..ab3664a 100644
--- a/src/ui/ui_settings.cpp
+++ b/src/ui/ui_settings.cpp
@@ -307,7 +307,7 @@ static void draw_ai_service_ui()
ImGui::EndComboPreview();
}
- ImGui::InputTextWithHint(locale::get("settings.services.ai_service.pubkey"), locale::get("settings.services.ai_service.pubkey"),
+ ImGui::InputTextWithHint(locale::get("settings.services.ai_service.apikey"), locale::get("settings.services.ai_service.apikey"),
new_ai_service.api_key_public, sizeof(new_ai_service.api_key_public));
if (!model_request) {
@@ -383,7 +383,7 @@ static void draw_email_service_ui()
email_service_images[i] = impl.icon_name;
}
- if (ImGui::BeginCombo("##emailProviderDropdown", NULL, 1 << 20)) {
+ if (ImGui::BeginCombo(locale::get("settings.services.email_service.provider"), NULL, 1 << 20)) {
for (u32 n = 0; n < EMAIL_PROVIDER_END; n++)
{
ImGui::PushID(n);
@@ -411,8 +411,8 @@ static void draw_email_service_ui()
ImGui::EndComboPreview();
}
- ImGui::InputTextWithHint(locale::get("settings.services.email_service.pubkey"),
- locale::get("settings.services.email_service.pubkey"), new_email_service.api_key, sizeof(new_email_service.api_key));
+ ImGui::InputTextWithHint(locale::get("settings.services.email_service.apikey"),
+ locale::get("settings.services.email_service.apikey"), new_email_service.api_key, sizeof(new_email_service.api_key));
char id[100];
strops::format(id, 100, "%s##email", locale::get("form.save"));
@@ -426,8 +426,13 @@ static void draw_email_service_ui()
static void draw_services()
{
+ ImGui::PushID("EmailProvider");
draw_email_service_ui();
+ ImGui::PopID();
+
+ ImGui::PushID("AIProvider");
draw_ai_service_ui();
+ ImGui::PopID();
}
void ui::draw_settings()
diff --git a/src/ui/ui_setup.cpp b/src/ui/ui_setup.cpp
index 99d6d9f..e877ad9 100644
--- a/src/ui/ui_setup.cpp
+++ b/src/ui/ui_setup.cpp
@@ -43,14 +43,14 @@ void ui::draw_setup()
ImGui::Spacing();
ImGui::Spacing();
- if (ImGui::Button(ICON_FA_FILE_IMPORT " Load administration", ImVec2(area.x, 0))) { // @locale
+ if (ImGui::Button(locale::get("ui.setup.load_administration"), ImVec2(area.x, 0))) {
if (administration_reader::open_existing(NULL)) {
ui::set_state(ui::main_state::UI_SETTINGS);
ui::recreate_window_for_main_views();
}
}
- if (ImGui::Button(ICON_FA_FOLDER_PLUS " Create administration", ImVec2(area.x, 0))) { // @locale
+ if (ImGui::Button(locale::get("ui.setup.create_administration"), ImVec2(area.x, 0))) {
if (administration_reader::open_new()) {
ui::set_state(ui::main_state::UI_SETTINGS);
ui::recreate_window_for_main_views();