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 1/6] :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)
}
From 9a9f1229b4ec1c8192a33eb2e6464b9f4dbf70ed Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Mon, 7 Jul 2025 11:10:33 +0800
Subject: [PATCH 2/6] :art: Add some currency formatting support to database
numeric fields https://github.com/siyuan-note/siyuan/issues/15232
---
app/src/protyle/render/av/number.ts | 77 +++++++++++++++++++++++++++++
kernel/model/attribute_view.go | 66 +++++++++++++++++++++----
2 files changed, 133 insertions(+), 10 deletions(-)
diff --git a/app/src/protyle/render/av/number.ts b/app/src/protyle/render/av/number.ts
index dcf772ba0..662d0d3d2 100644
--- a/app/src/protyle/render/av/number.ts
+++ b/app/src/protyle/render/av/number.ts
@@ -158,6 +158,69 @@ export const formatNumber = (options: {
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
+ addFormatItem({
+ menu,
+ protyle: options.protyle,
+ colId: options.colId,
+ avID: options.avID,
+ format: "THB",
+ oldFormat: options.oldFormat,
+ avPanelElement: options.avPanelElement,
+ });
+ addFormatItem({
+ menu,
+ protyle: options.protyle,
+ colId: options.colId,
+ avID: options.avID,
+ format: "AUD",
+ oldFormat: options.oldFormat,
+ avPanelElement: options.avPanelElement,
+ });
+ addFormatItem({
+ menu,
+ protyle: options.protyle,
+ colId: options.colId,
+ avID: options.avID,
+ format: "HKD",
+ oldFormat: options.oldFormat,
+ avPanelElement: options.avPanelElement,
+ });
+ addFormatItem({
+ menu,
+ protyle: options.protyle,
+ colId: options.colId,
+ avID: options.avID,
+ format: "TWD",
+ oldFormat: options.oldFormat,
+ avPanelElement: options.avPanelElement,
+ });
+ addFormatItem({
+ menu,
+ protyle: options.protyle,
+ colId: options.colId,
+ avID: options.avID,
+ format: "MOP",
+ oldFormat: options.oldFormat,
+ avPanelElement: options.avPanelElement,
+ });
+ addFormatItem({
+ menu,
+ protyle: options.protyle,
+ colId: options.colId,
+ avID: options.avID,
+ format: "SGD",
+ oldFormat: options.oldFormat,
+ avPanelElement: options.avPanelElement,
+ });
+ addFormatItem({
+ menu,
+ protyle: options.protyle,
+ colId: options.colId,
+ avID: options.avID,
+ format: "NZD",
+ oldFormat: options.oldFormat,
+ avPanelElement: options.avPanelElement,
+ });
const rect = options.element.getBoundingClientRect();
menu.open({
x: rect.left,
@@ -196,5 +259,19 @@ export const getLabelByNumberFormat = (format: string) => {
return window.siyuan.languages.numberFormatCanadianDollar;
case "franc":
return window.siyuan.languages.numberFormatFranc;
+ case "THB":
+ return window.siyuan.languages.numberFormatTHB;
+ case "AUD":
+ return window.siyuan.languages.numberFormatAUD;
+ case "HKD":
+ return window.siyuan.languages.numberFormatHKD;
+ case "TWD":
+ return window.siyuan.languages.numberFormatTWD;
+ case "MOP":
+ return window.siyuan.languages.numberFormatMOP;
+ case "SGD":
+ return window.siyuan.languages.numberFormatSGD;
+ case "NZD":
+ return window.siyuan.languages.numberFormatNZD;
}
};
diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go
index 55d4f10eb..e0d23d541 100644
--- a/kernel/model/attribute_view.go
+++ b/kernel/model/attribute_view.go
@@ -147,18 +147,63 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
// TODO Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964
// 生成分组数据
- groupItems := map[string][]av.Item{}
+ const (
+ defaultGroupName = "_@default@_"
+ notInRange = "_@notInRange@_"
+ )
+ var groupName string
viewable := sql.RenderView(attrView, view, "")
- collection := viewable.(av.Collection)
- for _, item := range collection.GetItems() {
- value := item.GetValue(group.Field)
- switch group.Method {
- case av.GroupMethodValue:
- strVal := value.String(false)
- groupItems[strVal] = append(groupItems[strVal], item)
- }
+
+ var items []av.Item
+ for _, item := range viewable.(av.Collection).GetItems() {
+ items = append(items, item)
}
- for _, items := range groupItems {
+ var rangeStart, rangeEnd float64
+ switch group.Method {
+ case av.GroupMethodValue:
+ case av.GroupMethodRangeNum:
+ rangeStart, rangeEnd = group.Range.NumStart, group.Range.NumEnd
+ sort.SliceStable(items, func(i, j int) bool {
+ if av.GroupOrderAsc == group.Order {
+ return items[i].GetValue(group.Field).Number.Content < items[j].GetValue(group.Field).Number.Content
+ }
+ return items[i].GetValue(group.Field).Number.Content > items[j].GetValue(group.Field).Number.Content
+ })
+ }
+
+ groupItems := map[string][]av.Item{}
+ for _, item := range items {
+ value := item.GetValue(group.Field)
+ if value.IsEmpty() {
+ groupName = defaultGroupName
+ } else {
+ switch group.Method {
+ case av.GroupMethodValue:
+ groupName = value.String(false)
+ case av.GroupMethodRangeNum:
+ if nil != group.Range && value.Type == av.KeyTypeNumber {
+ if group.Range.NumStart > value.Number.Content || group.Range.NumEnd < value.Number.Content {
+ groupName = notInRange
+ break
+ }
+
+ for rangeEnd <= group.Range.NumEnd {
+ if rangeEnd < value.Number.Content {
+ rangeStart += group.Range.NumStep
+ rangeEnd += group.Range.NumStep
+ }
+ }
+
+ if rangeStart <= value.Number.Content && rangeEnd >= value.Number.Content {
+ groupName = fmt.Sprintf("%s - %s", strconv.FormatFloat(rangeStart, 'f', -1, 64), strconv.FormatFloat(rangeEnd, 'f', -1, 64))
+ }
+ }
+ }
+ }
+ groupItems[groupName] = append(groupItems[groupName], item)
+ }
+
+ for name, items := range groupItems {
var v *av.View
switch view.LayoutType {
case av.LayoutTypeTable:
@@ -172,6 +217,7 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
v.GroupItemIDs = append(v.GroupItemIDs, item.GetID())
}
view.Groups = append(view.Groups, v)
+ view.GroupDefault = name == defaultGroupName
}
err = av.SaveAttributeView(attrView)
From 64e4ff0d4a7648922ab137dc105a33915a515b22 Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Mon, 7 Jul 2025 11:35:24 +0800
Subject: [PATCH 3/6] :art: Add some currency formatting support to database
numeric fields https://github.com/siyuan-note/siyuan/issues/15232
---
app/appearance/langs/ar_SA.json | 20 ++++-----
app/appearance/langs/de_DE.json | 20 ++++-----
app/appearance/langs/en_US.json | 20 ++++-----
app/appearance/langs/es_ES.json | 20 ++++-----
app/appearance/langs/fr_FR.json | 20 ++++-----
app/appearance/langs/he_IL.json | 20 ++++-----
app/appearance/langs/it_IT.json | 20 ++++-----
app/appearance/langs/ja_JP.json | 20 ++++-----
app/appearance/langs/pl_PL.json | 20 ++++-----
app/appearance/langs/pt_BR.json | 20 ++++-----
app/appearance/langs/ru_RU.json | 20 ++++-----
app/appearance/langs/zh_CHT.json | 20 ++++-----
app/appearance/langs/zh_CN.json | 20 ++++-----
app/src/protyle/render/av/number.ts | 70 ++++++++---------------------
kernel/av/value.go | 54 +++++++++++-----------
15 files changed, 176 insertions(+), 208 deletions(-)
diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json
index 60bd8a77f..f011b84c0 100644
--- a/app/appearance/langs/ar_SA.json
+++ b/app/appearance/langs/ar_SA.json
@@ -253,16 +253,16 @@
"numberFormatNone": "رقم",
"numberFormatCommas": "رقم مع فواصل",
"numberFormatPercent": "في المئة",
- "numberFormatUSDollar": "دولار أمريكي",
- "numberFormatYuan": "يوان",
- "numberFormatEuro": "يورو",
- "numberFormatPound": "جنيه",
- "numberFormatYen": "ين",
- "numberFormatRuble": "روبل",
- "numberFormatRupee": "روبية",
- "numberFormatWon": "وون",
- "numberFormatCanadianDollar": "دولار كندي",
- "numberFormatFranc": "فرنك",
+ "numberFormatUSD": "دولار أمريكي",
+ "numberFormatCNY": "يوان",
+ "numberFormatEUR": "يورو",
+ "numberFormatGBP": "جنيه",
+ "numberFormatJPY": "ين",
+ "numberFormatRUB": "روبل",
+ "numberFormatINR": "روبية",
+ "numberFormatKRW": "وون",
+ "numberFormatCAD": "دولار كندي",
+ "numberFormatCHF": "فرنك سويسري",
"numberFormatTHB": "بات تايلاندي",
"numberFormatAUD": "دولار أسترالي",
"numberFormatHKD": "دولار هونغ كونغ",
diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json
index a4d0bb30f..6c06c9497 100644
--- a/app/appearance/langs/de_DE.json
+++ b/app/appearance/langs/de_DE.json
@@ -253,16 +253,16 @@
"numberFormatNone": "Nummer",
"numberFormatCommas": "Nummer mit Kommata",
"numberFormatPercent": "Prozent",
- "numberFormatUSDollar": "US-Dollar",
- "numberFormatYuan": "Yuan",
- "numberFormatEuro": "Euro",
- "numberFormatPound": "Pfund",
- "numberFormatYen": "Yen",
- "numberFormatRuble": "Rubel",
- "numberFormatRupee": "Rupie",
- "numberFormatWon": "Won",
- "numberFormatCanadianDollar": "Kanadischer Dollar",
- "numberFormatFranc": "Franken",
+ "numberFormatUSD": "US-Dollar",
+ "numberFormatCNY": "Yuan",
+ "numberFormatEUR": "Euro",
+ "numberFormatGBP": "Pfund",
+ "numberFormatJPY": "Yen",
+ "numberFormatRUB": "Rubel",
+ "numberFormatINR": "Rupie",
+ "numberFormatKRW": "Won",
+ "numberFormatCAD": "Kanadischer Dollar",
+ "numberFormatCHF": "Schweizer Franken",
"numberFormatTHB": "Thailändischer Baht",
"numberFormatAUD": "Australischer Dollar",
"numberFormatHKD": "Hongkong-Dollar",
diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index a53bbff58..5868a6891 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -253,16 +253,16 @@
"numberFormatNone": "Number",
"numberFormatCommas": "Number with commas",
"numberFormatPercent": "Percent",
- "numberFormatUSDollar": "US Dollar",
- "numberFormatYuan": "Yuan",
- "numberFormatEuro": "Euro",
- "numberFormatPound": "Pound",
- "numberFormatYen": "Yen",
- "numberFormatRuble": "Ruble",
- "numberFormatRupee": "Rupee",
- "numberFormatWon": "Won",
- "numberFormatCanadianDollar": "Canadian Dollar",
- "numberFormatFranc": "Franc",
+ "numberFormatUSD": "US Dollar",
+ "numberFormatCNY": "Yuan",
+ "numberFormatEUR": "Euro",
+ "numberFormatGBP": "Pound",
+ "numberFormatJPY": "Yen",
+ "numberFormatRUB": "Ruble",
+ "numberFormatINR": "Rupee",
+ "numberFormatKRW": "Won",
+ "numberFormatCAD": "Canadian Dollar",
+ "numberFormatCHF": "Swiss Franc",
"numberFormatTHB": "Thai Baht",
"numberFormatAUD": "Australian Dollar",
"numberFormatHKD": "Hong Kong Dollar",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index 36b2c3cf6..791c3ac64 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -253,16 +253,16 @@
"numberFormatNone": "Número",
"numberFormatCommas": "Número con comas",
"numberFormatPercent": "Porcentaje",
- "numberFormatUSDollar": "Dólar estadounidense",
- "numberFormatYuan": "Yuan",
- "numberFormatEuro": "Euro",
- "numberFormatPound": "Almohadilla",
- "numberFormatYen": "Yen",
- "numberFormatRuble": "Rublo",
- "numberFormatRupee": "Rupia",
- "numberFormatWon": "Ganado",
- "numberFormatCanadianDollar": "Dólar canadiense",
- "numberFormatFranc": "Franco",
+ "numberFormatUSD": "Dólar estadounidense",
+ "numberFormatCNY": "Yuan",
+ "numberFormatEUR": "Euro",
+ "numberFormatGBP": "Almohadilla",
+ "numberFormatJPY": "Yen",
+ "numberFormatRUB": "Rublo",
+ "numberFormatINR": "Rupia",
+ "numberFormatKRW": "Ganado",
+ "numberFormatCAD": "Dólar canadiense",
+ "numberFormatCHF": "Franco suizo",
"numberFormatTHB": "Baht tailandés",
"numberFormatAUD": "Dólar australiano",
"numberFormatHKD": "Dólar de Hong Kong",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index a206320bb..a9de3f59b 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -253,16 +253,16 @@
"numberFormatNone": "Numéro",
"numberFormatCommas": "Nombre avec des virgules",
"numberFormatPercent": "Pourcentage",
- "numberFormatUSDollar": "Dollar américain",
- "numberFormatYuan": "Yuan",
- "numberFormatEuro": "Euro",
- "numberFormatPound": "Livre",
- "numberFormatYen": "Yen",
- "numberFormatRuble": "Rouble",
- "numberFormatRupee": "Roupie",
- "numberFormatWon": "Gagné",
- "numberFormatCanadianDollar": "Dollar canadien",
- "numberFormatFranc": "Franc",
+ "numberFormatUSD": "Dollar américain",
+ "numberFormatCNY": "Yuan",
+ "numberFormatEUR": "Euro",
+ "numberFormatGBP": "Livre",
+ "numberFormatJPY": "Yen",
+ "numberFormatRUB": "Rouble",
+ "numberFormatINR": "Roupie",
+ "numberFormatKRW": "Gagné",
+ "numberFormatCAD": "Dollar canadien",
+ "numberFormatCHF": "Franc suisse",
"numberFormatTHB": "Baht thaïlandais",
"numberFormatAUD": "Dollar australien",
"numberFormatHKD": "Dollar de Hong Kong",
diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json
index 0b3f6acef..a6b5c9605 100644
--- a/app/appearance/langs/he_IL.json
+++ b/app/appearance/langs/he_IL.json
@@ -253,16 +253,16 @@
"numberFormatNone": "מספר",
"numberFormatCommas": "מספר עם פסיקים",
"numberFormatPercent": "אחוז",
- "numberFormatUSDollar": "דולר אמריקאי",
- "numberFormatYuan": "יואן",
- "numberFormatEuro": "יורו",
- "numberFormatPound": "לירה",
- "numberFormatYen": "ין",
- "numberFormatRuble": "רובל",
- "numberFormatRupee": "רופי",
- "numberFormatWon": "וון",
- "numberFormatCanadianDollar": "דולר קנדי",
- "numberFormatFranc": "פרנק",
+ "numberFormatUSD": "דולר אמריקאי",
+ "numberFormatCNY": "יואן",
+ "numberFormatEUR": "יורו",
+ "numberFormatGBP": "לירה",
+ "numberFormatJPY": "ין",
+ "numberFormatRUB": "רובל",
+ "numberFormatINR": "רופי",
+ "numberFormatKRW": "וון",
+ "numberFormatCAD": "דולר קנדי",
+ "numberFormatCHF": "פרנק שווייצרי",
"numberFormatTHB": "בהט תאילנדי",
"numberFormatAUD": "דולר אוסטרלי",
"numberFormatHKD": "דולר הונג קונגי",
diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json
index 5999e56cf..9bbefee47 100644
--- a/app/appearance/langs/it_IT.json
+++ b/app/appearance/langs/it_IT.json
@@ -253,16 +253,16 @@
"numberFormatNone": "Numero",
"numberFormatCommas": "Numero con virgole",
"numberFormatPercent": "Percentuale",
- "numberFormatUSDollar": "Dollaro USA",
- "numberFormatYuan": "Yuan",
- "numberFormatEuro": "Euro",
- "numberFormatPound": "Sterlina",
- "numberFormatYen": "Yen",
- "numberFormatRuble": "Rublo",
- "numberFormatRupee": "Rupia",
- "numberFormatWon": "Won",
- "numberFormatCanadianDollar": "Dollaro canadese",
- "numberFormatFranc": "Franco",
+ "numberFormatUSD": "Dollaro USA",
+ "numberFormatCNY": "Yuan",
+ "numberFormatEUR": "Euro",
+ "numberFormatGBP": "Sterlina",
+ "numberFormatJPY": "Yen",
+ "numberFormatRUB": "Rublo",
+ "numberFormatINR": "Rupia",
+ "numberFormatKRW": "Won",
+ "numberFormatCAD": "Dollaro canadese",
+ "numberFormatCHF": "Franco svizzero",
"numberFormatTHB": "Baht thailandese",
"numberFormatAUD": "Dollaro australiano",
"numberFormatHKD": "Dollaro di Hong Kong",
diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json
index 165267b9e..3a2d8f7dc 100644
--- a/app/appearance/langs/ja_JP.json
+++ b/app/appearance/langs/ja_JP.json
@@ -253,16 +253,16 @@
"numberFormatNone": "数値",
"numberFormatCommas": "カンマ区切りの数値",
"numberFormatPercent": "パーセント",
- "numberFormatUSDollar": "米ドル",
- "numberFormatYuan": "元",
- "numberFormatEuro": "ユーロ",
- "numberFormatPound": "ポンド",
- "numberFormatYen": "円",
- "numberFormatRuble": "ルーブル",
- "numberFormatRupee": "ルピー",
- "numberFormatWon": "ウォン",
- "numberFormatCanadianDollar": "カナダドル",
- "numberFormatFranc": "フラン",
+ "numberFormatUSD": "米ドル",
+ "numberFormatCNY": "元",
+ "numberFormatEUR": "ユーロ",
+ "numberFormatGBP": "ポンド",
+ "numberFormatJPY": "円",
+ "numberFormatRUB": "ルーブル",
+ "numberFormatINR": "ルピー",
+ "numberFormatKRW": "ウォン",
+ "numberFormatCAD": "カナダドル",
+ "numberFormatCHF": "スイスフラン",
"numberFormatTHB": "タイバーツ",
"numberFormatAUD": "オーストラリアドル",
"numberFormatHKD": "香港ドル",
diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json
index d59b7e2fd..c6167b2cb 100644
--- a/app/appearance/langs/pl_PL.json
+++ b/app/appearance/langs/pl_PL.json
@@ -253,16 +253,16 @@
"numberFormatNone": "Liczba",
"numberFormatCommas": "Liczba z przecinkami",
"numberFormatPercent": "Procent",
- "numberFormatUSDollar": "Dolar amerykański",
- "numberFormatYuan": "Yuan",
- "numberFormatEuro": "Euro",
- "numberFormatPound": "Funt",
- "numberFormatYen": "Jen",
- "numberFormatRuble": "Rubel",
- "numberFormatRupee": "Rupia",
- "numberFormatWon": "Won",
- "numberFormatCanadianDollar": "Dolar kanadyjski",
- "numberFormatFranc": "Frank",
+ "numberFormatUSD": "Dolar amerykański",
+ "numberFormatCNY": "Yuan",
+ "numberFormatEUR": "Euro",
+ "numberFormatGBP": "Funt",
+ "numberFormatJPY": "Jen",
+ "numberFormatRUB": "Rubel",
+ "numberFormatINR": "Rupia",
+ "numberFormatKRW": "Won",
+ "numberFormatCAD": "Dolar kanadyjski",
+ "numberFormatCHF": "Frank szwajcarski",
"numberFormatTHB": "Baht tajski",
"numberFormatAUD": "Dolar australijski",
"numberFormatHKD": "Dolar hongkoński",
diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json
index 064d301f4..7f2a7c600 100644
--- a/app/appearance/langs/pt_BR.json
+++ b/app/appearance/langs/pt_BR.json
@@ -253,16 +253,16 @@
"numberFormatNone": "Número",
"numberFormatCommas": "Número com vírgulas",
"numberFormatPercent": "Porcentagem",
- "numberFormatUSDollar": "Dólar Americano",
- "numberFormatYuan": "Yuan",
- "numberFormatEuro": "Euro",
- "numberFormatPound": "Libra",
- "numberFormatYen": "Iene",
- "numberFormatRuble": "Rublo",
- "numberFormatRupee": "Rúpia",
- "numberFormatWon": "Won",
- "numberFormatCanadianDollar": "Dólar Canadense",
- "numberFormatFranc": "Franco",
+ "numberFormatUSD": "Dólar Americano",
+ "numberFormatCNY": "Yuan",
+ "numberFormatEUR": "Euro",
+ "numberFormatGBP": "Libra",
+ "numberFormatJPY": "Iene",
+ "numberFormatRUB": "Rublo",
+ "numberFormatINR": "Rúpia",
+ "numberFormatKRW": "Won",
+ "numberFormatCAD": "Dólar Canadense",
+ "numberFormatCHF": "Franco suíço",
"numberFormatTHB": "Baht tailandês",
"numberFormatAUD": "Dólar australiano",
"numberFormatHKD": "Dólar de Hong Kong",
diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json
index e6d1f4c47..b5873e368 100644
--- a/app/appearance/langs/ru_RU.json
+++ b/app/appearance/langs/ru_RU.json
@@ -253,16 +253,16 @@
"numberFormatNone": "Число",
"numberFormatCommas": "Число с запятыми",
"numberFormatPercent": "Процент",
- "numberFormatUSDollar": "Доллар США",
- "numberFormatYuan": "Юань",
- "numberFormatEuro": "Евро",
- "numberFormatPound": "Фунт",
- "numberFormatYen": "Йена",
- "numberFormatRuble": "Рубль",
- "numberFormatRupee": "Рупия",
- "numberFormatWon": "Вон",
- "numberFormatCanadianDollar": "Канадский доллар",
- "numberFormatFranc": "Франк",
+ "numberFormatUSD": "Доллар США",
+ "numberFormatCNY": "Юань",
+ "numberFormatEUR": "Евро",
+ "numberFormatGBP": "Фунт",
+ "numberFormatJPY": "Йена",
+ "numberFormatRUB": "Рубль",
+ "numberFormatINR": "Рупия",
+ "numberFormatKRW": "Вон",
+ "numberFormatCAD": "Канадский доллар",
+ "numberFormatCHF": "Швейцарский франк",
"numberFormatTHB": "Тайский бат",
"numberFormatAUD": "Австралийский доллар",
"numberFormatHKD": "Гонконгский доллар",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index 6b9a85cf5..a7366eb0a 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -253,16 +253,16 @@
"numberFormatNone": "數字",
"numberFormatCommas": "千分位",
"numberFormatPercent": "百分比",
- "numberFormatUSDollar": "美元",
- "numberFormatYuan": "人民幣",
- "numberFormatEuro": "歐元",
- "numberFormatPound": "英鎊",
- "numberFormatYen": "日元",
- "numberFormatRuble": "盧布",
- "numberFormatRupee": "盧比",
- "numberFormatWon": "韓元",
- "numberFormatCanadianDollar": "加元",
- "numberFormatFranc": "法郎",
+ "numberFormatUSD": "美元",
+ "numberFormatCNY": "人民幣",
+ "numberFormatEUR": "歐元",
+ "numberFormatGBP": "英鎊",
+ "numberFormatJPY": "日元",
+ "numberFormatRUB": "盧布",
+ "numberFormatINR": "盧比",
+ "numberFormatKRW": "韓元",
+ "numberFormatCAD": "加元",
+ "numberFormatCHF": "瑞士法郎",
"numberFormatTHB": "泰銖",
"numberFormatAUD": "澳元",
"numberFormatHKD": "港幣",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index 3c7632adf..dd4ec71ce 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -253,16 +253,16 @@
"numberFormatNone": "数字",
"numberFormatCommas": "千分位",
"numberFormatPercent": "百分比",
- "numberFormatUSDollar": "美元",
- "numberFormatYuan": "人民币",
- "numberFormatEuro": "欧元",
- "numberFormatPound": "英镑",
- "numberFormatYen": "日元",
- "numberFormatRuble": "卢布",
- "numberFormatRupee": "卢比",
- "numberFormatWon": "韩元",
- "numberFormatCanadianDollar": "加元",
- "numberFormatFranc": "法郎",
+ "numberFormatUSD": "美元",
+ "numberFormatCNY": "人民币",
+ "numberFormatEUR": "欧元",
+ "numberFormatGBP": "英镑",
+ "numberFormatJPY": "日元",
+ "numberFormatRUB": "卢布",
+ "numberFormatINR": "卢比",
+ "numberFormatKRW": "韩元",
+ "numberFormatCAD": "加元",
+ "numberFormatCHF": "瑞士法郎",
"numberFormatTHB": "泰铢",
"numberFormatAUD": "澳元",
"numberFormatHKD": "港币",
diff --git a/app/src/protyle/render/av/number.ts b/app/src/protyle/render/av/number.ts
index 662d0d3d2..58d588057 100644
--- a/app/src/protyle/render/av/number.ts
+++ b/app/src/protyle/render/av/number.ts
@@ -73,7 +73,7 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "usDollar",
+ format: "USD",
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
@@ -82,7 +82,7 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "yuan",
+ format: "CNY",
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
@@ -91,7 +91,7 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "euro",
+ format: "EUR",
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
@@ -100,7 +100,7 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "pound",
+ format: "GBP",
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
@@ -109,7 +109,7 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "yen",
+ format: "JPY",
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
@@ -118,7 +118,7 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "ruble",
+ format: "RUB",
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
@@ -127,7 +127,7 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "rupee",
+ format: "INR",
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
@@ -136,7 +136,7 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "won",
+ format: "KRW",
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
@@ -145,7 +145,7 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "canadianDollar",
+ format: "CAD",
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
@@ -154,7 +154,7 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "franc",
+ format: "CHF",
oldFormat: options.oldFormat,
avPanelElement: options.avPanelElement,
});
@@ -232,46 +232,14 @@ export const formatNumber = (options: {
};
export const getLabelByNumberFormat = (format: string) => {
- switch (format) {
- case "":
- return window.siyuan.languages.numberFormatNone;
- case "commas":
- return window.siyuan.languages.numberFormatCommas;
- case "percent":
- return window.siyuan.languages.numberFormatPercent;
- case "usDollar":
- return window.siyuan.languages.numberFormatUSDollar;
- case "yuan":
- return window.siyuan.languages.numberFormatYuan;
- case "euro":
- return window.siyuan.languages.numberFormatEuro;
- case "pound":
- return window.siyuan.languages.numberFormatPound;
- case "yen":
- return window.siyuan.languages.numberFormatYen;
- case "ruble":
- return window.siyuan.languages.numberFormatRuble;
- case "rupee":
- return window.siyuan.languages.numberFormatRupee;
- case "won":
- return window.siyuan.languages.numberFormatWon;
- case "canadianDollar":
- return window.siyuan.languages.numberFormatCanadianDollar;
- case "franc":
- return window.siyuan.languages.numberFormatFranc;
- case "THB":
- return window.siyuan.languages.numberFormatTHB;
- case "AUD":
- return window.siyuan.languages.numberFormatAUD;
- case "HKD":
- return window.siyuan.languages.numberFormatHKD;
- case "TWD":
- return window.siyuan.languages.numberFormatTWD;
- case "MOP":
- return window.siyuan.languages.numberFormatMOP;
- case "SGD":
- return window.siyuan.languages.numberFormatSGD;
- case "NZD":
- return window.siyuan.languages.numberFormatNZD;
+ if ("" === format) {
+ return window.siyuan.languages.numberFormatNone;
+ } else if ("commas" === format) {
+ return window.siyuan.languages.numberFormatCommas;
+ } else if ("percent" === format) {
+ return window.siyuan.languages.numberFormatPercent;
}
+
+ let key = "numberFormat" + format;
+ return window.siyuan.languages[key]
};
diff --git a/kernel/av/value.go b/kernel/av/value.go
index ff22e331a..082ea97e4 100644
--- a/kernel/av/value.go
+++ b/kernel/av/value.go
@@ -399,23 +399,23 @@ const (
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" // 新西兰元
+ NumberFormatUSD NumberFormat = "USD" // 美元
+ NumberFormatCNY NumberFormat = "CNY" // 人民币
+ NumberFormatEUR NumberFormat = "EUR" // 欧元
+ NumberFormatGBP NumberFormat = "GBP" // 英镑
+ NumberFormatJPY NumberFormat = "JPY" // 日元
+ NumberFormatRUB NumberFormat = "RUB" // 卢布
+ NumberFormatINR NumberFormat = "INR" // 卢比
+ NumberFormatKRW NumberFormat = "KRW" // 韩元
+ NumberFormatCAD NumberFormat = "CAD" // 加拿大元
+ NumberFormatCHF NumberFormat = "CHF" // 瑞士法郎
+ 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) {
@@ -451,34 +451,34 @@ func formatNumber(content float64, format NumberFormat) string {
case NumberFormatPercent:
s := fmt.Sprintf("%.2f", content*100)
return strings.TrimRight(strings.TrimRight(s, "0"), ".") + "%"
- case NumberFormatUSDollar:
+ case NumberFormatUSD:
p := message.NewPrinter(language.English)
return p.Sprintf("$%.2f", content)
- case NumberFormatYuan:
+ case NumberFormatCNY:
p := message.NewPrinter(language.Chinese)
return p.Sprintf("CN¥%.2f", content)
- case NumberFormatEuro:
+ case NumberFormatEUR:
p := message.NewPrinter(language.German)
return p.Sprintf("€%.2f", content)
- case NumberFormatPound:
+ case NumberFormatGBP:
p := message.NewPrinter(language.English)
return p.Sprintf("£%.2f", content)
- case NumberFormatYen:
+ case NumberFormatJPY:
p := message.NewPrinter(language.Japanese)
return p.Sprintf("¥%.0f", content)
- case NumberFormatRuble:
+ case NumberFormatRUB:
p := message.NewPrinter(language.Russian)
return p.Sprintf("₽%.2f", content)
- case NumberFormatRupee:
+ case NumberFormatINR:
p := message.NewPrinter(language.Hindi)
return p.Sprintf("₹%.2f", content)
- case NumberFormatWon:
+ case NumberFormatKRW:
p := message.NewPrinter(language.Korean)
return p.Sprintf("₩%.0f", content)
- case NumberFormatCanadianDollar:
+ case NumberFormatCAD:
p := message.NewPrinter(language.English)
return p.Sprintf("CA$%.2f", content)
- case NumberFormatFranc:
+ case NumberFormatCHF:
p := message.NewPrinter(language.French)
return p.Sprintf("CHF%.2f", content)
case NumberFormatTHB:
From 91097dd7c4fc739736695f6e4d242ac422699459 Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Mon, 7 Jul 2025 11:54:57 +0800
Subject: [PATCH 4/6] :art: Database grouping by field
https://github.com/siyuan-note/siyuan/issues/10964
---
kernel/model/attribute_view.go | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go
index e0d23d541..2a66d7883 100644
--- a/kernel/model/attribute_view.go
+++ b/kernel/model/attribute_view.go
@@ -162,7 +162,7 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
switch group.Method {
case av.GroupMethodValue:
case av.GroupMethodRangeNum:
- rangeStart, rangeEnd = group.Range.NumStart, group.Range.NumEnd
+ rangeStart, rangeEnd = group.Range.NumStart, group.Range.NumStart+group.Range.NumStep
sort.SliceStable(items, func(i, j int) bool {
if av.GroupOrderAsc == group.Order {
return items[i].GetValue(group.Field).Number.Content < items[j].GetValue(group.Field).Number.Content
@@ -171,7 +171,7 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
})
}
- groupItems := map[string][]av.Item{}
+ groupItemsMap := map[string][]av.Item{}
for _, item := range items {
value := item.GetValue(group.Field)
if value.IsEmpty() {
@@ -187,11 +187,9 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
break
}
- for rangeEnd <= group.Range.NumEnd {
- if rangeEnd < value.Number.Content {
- rangeStart += group.Range.NumStep
- rangeEnd += group.Range.NumStep
- }
+ for rangeEnd <= group.Range.NumEnd && rangeEnd < value.Number.Content {
+ rangeStart += group.Range.NumStep
+ rangeEnd += group.Range.NumStep
}
if rangeStart <= value.Number.Content && rangeEnd >= value.Number.Content {
@@ -200,10 +198,10 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
}
}
}
- groupItems[groupName] = append(groupItems[groupName], item)
+ groupItemsMap[groupName] = append(groupItemsMap[groupName], item)
}
- for name, items := range groupItems {
+ for name, groupItems := range groupItemsMap {
var v *av.View
switch view.LayoutType {
case av.LayoutTypeTable:
@@ -213,7 +211,7 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
v = av.NewGalleryView()
v.Gallery = av.NewLayoutGallery()
}
- for _, item := range items {
+ for _, item := range groupItems {
v.GroupItemIDs = append(v.GroupItemIDs, item.GetID())
}
view.Groups = append(view.Groups, v)
From b8e677b6d0683f6624bc53266a34da20c77ff598 Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Mon, 7 Jul 2025 11:59:33 +0800
Subject: [PATCH 5/6] :art: Database grouping by field
https://github.com/siyuan-note/siyuan/issues/10964
---
kernel/model/attribute_view.go | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go
index 2a66d7883..3548d324a 100644
--- a/kernel/model/attribute_view.go
+++ b/kernel/model/attribute_view.go
@@ -145,7 +145,6 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
view.Group = group
view.Groups = nil
- // TODO Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964
// 生成分组数据
const (
defaultGroupName = "_@default@_"
@@ -169,6 +168,7 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
}
return items[i].GetValue(group.Field).Number.Content > items[j].GetValue(group.Field).Number.Content
})
+ // TODO Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964
}
groupItemsMap := map[string][]av.Item{}
@@ -214,6 +214,7 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
for _, item := range groupItems {
v.GroupItemIDs = append(v.GroupItemIDs, item.GetID())
}
+ v.Name = name
view.Groups = append(view.Groups, v)
view.GroupDefault = name == defaultGroupName
}
From bb6a521954f8f527472cb105bbb770532b7a04d7 Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Mon, 7 Jul 2025 15:39:51 +0800
Subject: [PATCH 6/6] :art: Database grouping by field
https://github.com/siyuan-note/siyuan/issues/10964
---
kernel/model/attribute_view.go | 36 ++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)
diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go
index 3548d324a..9ed567f73 100644
--- a/kernel/model/attribute_view.go
+++ b/kernel/model/attribute_view.go
@@ -161,6 +161,11 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
switch group.Method {
case av.GroupMethodValue:
case av.GroupMethodRangeNum:
+ if nil == group.Range {
+ logging.LogWarnf("range is nil in av [%s]", avID)
+ return
+ }
+
rangeStart, rangeEnd = group.Range.NumStart, group.Range.NumStart+group.Range.NumStep
sort.SliceStable(items, func(i, j int) bool {
if av.GroupOrderAsc == group.Order {
@@ -181,20 +186,27 @@ func SetAttributeViewGroup(avID, blockID string, group *av.ViewGroup) (err error
case av.GroupMethodValue:
groupName = value.String(false)
case av.GroupMethodRangeNum:
- if nil != group.Range && value.Type == av.KeyTypeNumber {
- if group.Range.NumStart > value.Number.Content || group.Range.NumEnd < value.Number.Content {
- groupName = notInRange
- break
- }
+ if value.Type != av.KeyTypeNumber {
+ logging.LogWarnf("item [%s] value [%s] type is not number in av [%s]", item.GetID(), value.String(false), avID)
+ return
+ }
+ if nil == value.Number {
+ logging.LogWarnf("item [%s] value [%s] number is nil in av [%s]", item.GetID(), value.String(false), avID)
+ return
+ }
- for rangeEnd <= group.Range.NumEnd && rangeEnd < value.Number.Content {
- rangeStart += group.Range.NumStep
- rangeEnd += group.Range.NumStep
- }
+ if group.Range.NumStart > value.Number.Content || group.Range.NumEnd < value.Number.Content {
+ groupName = notInRange
+ break
+ }
- if rangeStart <= value.Number.Content && rangeEnd >= value.Number.Content {
- groupName = fmt.Sprintf("%s - %s", strconv.FormatFloat(rangeStart, 'f', -1, 64), strconv.FormatFloat(rangeEnd, 'f', -1, 64))
- }
+ for rangeEnd <= group.Range.NumEnd && rangeEnd < value.Number.Content {
+ rangeStart += group.Range.NumStep
+ rangeEnd += group.Range.NumStep
+ }
+
+ if rangeStart <= value.Number.Content && rangeEnd >= value.Number.Content {
+ groupName = fmt.Sprintf("%s - %s", strconv.FormatFloat(rangeStart, 'f', -1, 64), strconv.FormatFloat(rangeEnd, 'f', -1, 64))
}
}
}