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)) } } }