From 53e8733848afabc6686aeae3cf9d0e592577fed0 Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Mon, 7 Jul 2025 11:05:21 +0800
Subject: [PATCH] :art: Add some currency formatting support to database
numeric fields https://github.com/siyuan-note/siyuan/issues/15232
---
app/appearance/langs/ar_SA.json | 7 ++++
app/appearance/langs/de_DE.json | 7 ++++
app/appearance/langs/en_US.json | 7 ++++
app/appearance/langs/es_ES.json | 7 ++++
app/appearance/langs/fr_FR.json | 7 ++++
app/appearance/langs/he_IL.json | 7 ++++
app/appearance/langs/it_IT.json | 7 ++++
app/appearance/langs/ja_JP.json | 7 ++++
app/appearance/langs/pl_PL.json | 7 ++++
app/appearance/langs/pt_BR.json | 7 ++++
app/appearance/langs/ru_RU.json | 7 ++++
app/appearance/langs/zh_CHT.json | 7 ++++
app/appearance/langs/zh_CN.json | 7 ++++
kernel/av/value.go | 55 ++++++++++++++++++++++++--------
14 files changed, 133 insertions(+), 13 deletions(-)
diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json
index 139b1cfe8..60bd8a77f 100644
--- a/app/appearance/langs/ar_SA.json
+++ b/app/appearance/langs/ar_SA.json
@@ -263,6 +263,13 @@
"numberFormatWon": "وون",
"numberFormatCanadianDollar": "دولار كندي",
"numberFormatFranc": "فرنك",
+ "numberFormatTHB": "بات تايلاندي",
+ "numberFormatAUD": "دولار أسترالي",
+ "numberFormatHKD": "دولار هونغ كونغ",
+ "numberFormatTWD": "دولار تايواني جديد",
+ "numberFormatMOP": "باتاكا ماكاوي",
+ "numberFormatSGD": "دولار سنغافوري",
+ "numberFormatNZD": "دولار نيوزيلندي",
"email": "بريد إلكتروني",
"phone": "رقم هاتف",
"inboxTip": "افتح دليل المستخدم للبحث عن علبة الوارد (inbox) لعرض التعليمات",
diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json
index 4051271eb..a4d0bb30f 100644
--- a/app/appearance/langs/de_DE.json
+++ b/app/appearance/langs/de_DE.json
@@ -263,6 +263,13 @@
"numberFormatWon": "Won",
"numberFormatCanadianDollar": "Kanadischer Dollar",
"numberFormatFranc": "Franken",
+ "numberFormatTHB": "Thailändischer Baht",
+ "numberFormatAUD": "Australischer Dollar",
+ "numberFormatHKD": "Hongkong-Dollar",
+ "numberFormatTWD": "Neuer Taiwan-Dollar",
+ "numberFormatMOP": "Macau-Pataca",
+ "numberFormatSGD": "Singapur-Dollar",
+ "numberFormatNZD": "Neuseeland-Dollar",
"email": "E-Mail",
"phone": "Telefon",
"inboxTip": "Öffnen Sie das Benutzerhandbuch, um die Posteingang zu durchsuchen, um die Anweisungen anzuzeigen",
diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index bf33dd4f0..a53bbff58 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -263,6 +263,13 @@
"numberFormatWon": "Won",
"numberFormatCanadianDollar": "Canadian Dollar",
"numberFormatFranc": "Franc",
+ "numberFormatTHB": "Thai Baht",
+ "numberFormatAUD": "Australian Dollar",
+ "numberFormatHKD": "Hong Kong Dollar",
+ "numberFormatTWD": "New Taiwan Dollar",
+ "numberFormatMOP": "Macau Pataca",
+ "numberFormatSGD": "Singapore Dollar",
+ "numberFormatNZD": "New Zealand Dollar",
"email": "Email",
"phone": "Phone",
"inboxTip": "Open the user guide to search the inbox to view the instructions",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index 0e4d22a76..36b2c3cf6 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -263,6 +263,13 @@
"numberFormatWon": "Ganado",
"numberFormatCanadianDollar": "Dólar canadiense",
"numberFormatFranc": "Franco",
+ "numberFormatTHB": "Baht tailandés",
+ "numberFormatAUD": "Dólar australiano",
+ "numberFormatHKD": "Dólar de Hong Kong",
+ "numberFormatTWD": "Nuevo dólar taiwanés",
+ "numberFormatMOP": "Pataca de Macao",
+ "numberFormatSGD": "Dólar de Singapur",
+ "numberFormatNZD": "Dólar neozelandés",
"email": "Correo electrónico",
"phone": "Teléfono",
"inboxTip": "Abra la guía del usuario para buscar en la bandeja de entrada para ver las instrucciones",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index da3264677..a206320bb 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -263,6 +263,13 @@
"numberFormatWon": "Gagné",
"numberFormatCanadianDollar": "Dollar canadien",
"numberFormatFranc": "Franc",
+ "numberFormatTHB": "Baht thaïlandais",
+ "numberFormatAUD": "Dollar australien",
+ "numberFormatHKD": "Dollar de Hong Kong",
+ "numberFormatTWD": "Nouveau dollar taïwanais",
+ "numberFormatMOP": "Pataca de Macao",
+ "numberFormatSGD": "Dollar de Singapour",
+ "numberFormatNZD": "Dollar néo-zélandais",
"email": "E-mail",
"phone": "Téléphone",
"inboxTip": "Ouvrez le guide de l'utilisateur pour rechercher la boîte de réception pour afficher les instructions",
diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json
index 66a386681..0b3f6acef 100644
--- a/app/appearance/langs/he_IL.json
+++ b/app/appearance/langs/he_IL.json
@@ -263,6 +263,13 @@
"numberFormatWon": "וון",
"numberFormatCanadianDollar": "דולר קנדי",
"numberFormatFranc": "פרנק",
+ "numberFormatTHB": "בהט תאילנדי",
+ "numberFormatAUD": "דולר אוסטרלי",
+ "numberFormatHKD": "דולר הונג קונגי",
+ "numberFormatTWD": "דולר טייוואני חדש",
+ "numberFormatMOP": "פטקה של מקאו",
+ "numberFormatSGD": "דולר סינגפורי",
+ "numberFormatNZD": "דולר ניו זילנדי",
"email": "דואר אלקטרוני",
"phone": "טלפון",
"inboxTip": "פתח את המדריך למשתמש כדי לחפש באינבוקס כדי לראות את ההנחיות",
diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json
index 5d84ed16f..5999e56cf 100644
--- a/app/appearance/langs/it_IT.json
+++ b/app/appearance/langs/it_IT.json
@@ -263,6 +263,13 @@
"numberFormatWon": "Won",
"numberFormatCanadianDollar": "Dollaro canadese",
"numberFormatFranc": "Franco",
+ "numberFormatTHB": "Baht thailandese",
+ "numberFormatAUD": "Dollaro australiano",
+ "numberFormatHKD": "Dollaro di Hong Kong",
+ "numberFormatTWD": "Nuovo dollaro taiwanese",
+ "numberFormatMOP": "Pataca di Macao",
+ "numberFormatSGD": "Dollaro di Singapore",
+ "numberFormatNZD": "Dollaro neozelandese",
"email": "Email",
"phone": "Telefono",
"inboxTip": "Apri la guida utente per cercare inbox e visualizzare le istruzioni",
diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json
index c3d15dcdb..165267b9e 100644
--- a/app/appearance/langs/ja_JP.json
+++ b/app/appearance/langs/ja_JP.json
@@ -263,6 +263,13 @@
"numberFormatWon": "ウォン",
"numberFormatCanadianDollar": "カナダドル",
"numberFormatFranc": "フラン",
+ "numberFormatTHB": "タイバーツ",
+ "numberFormatAUD": "オーストラリアドル",
+ "numberFormatHKD": "香港ドル",
+ "numberFormatTWD": "新台湾ドル",
+ "numberFormatMOP": "マカオパタカ",
+ "numberFormatSGD": "シンガポールドル",
+ "numberFormatNZD": "ニュージーランドドル",
"email": "メール",
"phone": "電話",
"inboxTip": "ユーザーガイドの 受信トレイ を読んで使い方を確認してください",
diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json
index 58be72d74..d59b7e2fd 100644
--- a/app/appearance/langs/pl_PL.json
+++ b/app/appearance/langs/pl_PL.json
@@ -263,6 +263,13 @@
"numberFormatWon": "Won",
"numberFormatCanadianDollar": "Dolar kanadyjski",
"numberFormatFranc": "Frank",
+ "numberFormatTHB": "Baht tajski",
+ "numberFormatAUD": "Dolar australijski",
+ "numberFormatHKD": "Dolar hongkoński",
+ "numberFormatTWD": "Nowy dolar tajwański",
+ "numberFormatMOP": "Pataca Makau",
+ "numberFormatSGD": "Dolar singapurski",
+ "numberFormatNZD": "Dolar nowozelandzki",
"email": "Email",
"phone": "Telefon",
"inboxTip": "Otwórz przewodnik użytkownika, aby wyszukać inbox, aby zobaczyć instrukcje",
diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json
index abd2c697c..064d301f4 100644
--- a/app/appearance/langs/pt_BR.json
+++ b/app/appearance/langs/pt_BR.json
@@ -263,6 +263,13 @@
"numberFormatWon": "Won",
"numberFormatCanadianDollar": "Dólar Canadense",
"numberFormatFranc": "Franco",
+ "numberFormatTHB": "Baht tailandês",
+ "numberFormatAUD": "Dólar australiano",
+ "numberFormatHKD": "Dólar de Hong Kong",
+ "numberFormatTWD": "Novo dólar taiwanês",
+ "numberFormatMOP": "Pataca de Macau",
+ "numberFormatSGD": "Dólar de Singapura",
+ "numberFormatNZD": "Dólar neozelandês",
"email": "E-mail",
"phone": "Telefone",
"inboxTip": "Abra o guia do usuário para pesquisar o inbox e visualizar as instruções",
diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json
index e9404d493..e6d1f4c47 100644
--- a/app/appearance/langs/ru_RU.json
+++ b/app/appearance/langs/ru_RU.json
@@ -263,6 +263,13 @@
"numberFormatWon": "Вон",
"numberFormatCanadianDollar": "Канадский доллар",
"numberFormatFranc": "Франк",
+ "numberFormatTHB": "Тайский бат",
+ "numberFormatAUD": "Австралийский доллар",
+ "numberFormatHKD": "Гонконгский доллар",
+ "numberFormatTWD": "Новый тайваньский доллар",
+ "numberFormatMOP": "Патака Макао",
+ "numberFormatSGD": "Сингапурский доллар",
+ "numberFormatNZD": "Новозеландский доллар",
"email": "Электронная почта",
"phone": "Телефон",
"inboxTip": "Откройте руководство пользователя, чтобы найти inbox, чтобы посмотреть инструкции",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index bc6b21b5c..6b9a85cf5 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -263,6 +263,13 @@
"numberFormatWon": "韓元",
"numberFormatCanadianDollar": "加元",
"numberFormatFranc": "法郎",
+ "numberFormatTHB": "泰銖",
+ "numberFormatAUD": "澳元",
+ "numberFormatHKD": "港幣",
+ "numberFormatTWD": "新台幣",
+ "numberFormatMOP": "澳門元",
+ "numberFormatSGD": "新加坡元",
+ "numberFormatNZD": "紐西蘭元",
"email": "郵箱",
"phone": "電話",
"inboxTip": "打開用戶指南搜索 收集箱 查看使用說明",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index e29345780..3c7632adf 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -263,6 +263,13 @@
"numberFormatWon": "韩元",
"numberFormatCanadianDollar": "加元",
"numberFormatFranc": "法郎",
+ "numberFormatTHB": "泰铢",
+ "numberFormatAUD": "澳元",
+ "numberFormatHKD": "港币",
+ "numberFormatTWD": "新台币",
+ "numberFormatMOP": "澳门元",
+ "numberFormatSGD": "新加坡元",
+ "numberFormatNZD": "新西兰元",
"email": "邮箱",
"phone": "电话",
"inboxTip": "打开用户指南搜索 收集箱 查看使用说明",
diff --git a/kernel/av/value.go b/kernel/av/value.go
index 593cce3d8..ff22e331a 100644
--- a/kernel/av/value.go
+++ b/kernel/av/value.go
@@ -395,19 +395,27 @@ type ValueNumber struct {
type NumberFormat string
const (
- NumberFormatNone NumberFormat = ""
- NumberFormatCommas NumberFormat = "commas"
- NumberFormatPercent NumberFormat = "percent"
- NumberFormatUSDollar NumberFormat = "usDollar"
- NumberFormatYuan NumberFormat = "yuan"
- NumberFormatEuro NumberFormat = "euro"
- NumberFormatPound NumberFormat = "pound"
- NumberFormatYen NumberFormat = "yen"
- NumberFormatRuble NumberFormat = "ruble"
- NumberFormatRupee NumberFormat = "rupee"
- NumberFormatWon NumberFormat = "won"
- NumberFormatCanadianDollar NumberFormat = "canadianDollar"
- NumberFormatFranc NumberFormat = "franc"
+ NumberFormatNone NumberFormat = ""
+ NumberFormatCommas NumberFormat = "commas"
+ NumberFormatPercent NumberFormat = "percent"
+
+ NumberFormatUSDollar NumberFormat = "usDollar" // 美元
+ NumberFormatYuan NumberFormat = "yuan" // 人民币
+ NumberFormatEuro NumberFormat = "euro" // 欧元
+ NumberFormatPound NumberFormat = "pound" // 英镑
+ NumberFormatYen NumberFormat = "yen" // 日元
+ NumberFormatRuble NumberFormat = "ruble" // 卢布
+ NumberFormatRupee NumberFormat = "rupee" // 卢比
+ NumberFormatWon NumberFormat = "won" // 韩元
+ NumberFormatCanadianDollar NumberFormat = "canadianDollar" // 加拿大元
+ NumberFormatFranc NumberFormat = "franc" // 瑞士法郎
+ NumberFormatTHB NumberFormat = "THB" // 泰铢
+ NumberFormatAUD NumberFormat = "AUD" // 澳大利亚元
+ NumberFormatHKD NumberFormat = "HKD" // 港币
+ NumberFormatTWD NumberFormat = "TWD" // 新台币
+ NumberFormatMOP NumberFormat = "MOP" // 澳门币
+ NumberFormatSGD NumberFormat = "SGD" // 新加坡元
+ NumberFormatNZD NumberFormat = "NZD" // 新西兰元
)
func NewFormattedValueNumber(content float64, format NumberFormat) (ret *ValueNumber) {
@@ -473,6 +481,27 @@ func formatNumber(content float64, format NumberFormat) string {
case NumberFormatFranc:
p := message.NewPrinter(language.French)
return p.Sprintf("CHF%.2f", content)
+ case NumberFormatTHB:
+ p := message.NewPrinter(language.Thai)
+ return p.Sprintf("฿%.2f", content)
+ case NumberFormatAUD:
+ p := message.NewPrinter(language.English)
+ return p.Sprintf("A$%.2f", content)
+ case NumberFormatHKD:
+ p := message.NewPrinter(language.English)
+ return p.Sprintf("HK$%.2f", content)
+ case NumberFormatTWD:
+ p := message.NewPrinter(language.Chinese)
+ return p.Sprintf("NT$%.2f", content)
+ case NumberFormatMOP:
+ p := message.NewPrinter(language.Chinese)
+ return p.Sprintf("MOP$%.2f", content)
+ case NumberFormatSGD:
+ p := message.NewPrinter(language.English)
+ return p.Sprintf("S$%.2f", content)
+ case NumberFormatNZD:
+ p := message.NewPrinter(language.English)
+ return p.Sprintf("NZ$%.2f", content)
default:
return strconv.FormatFloat(content, 'f', -1, 64)
}