🎨 Add some currency formatting support to database numeric fields https://github.com/siyuan-note/siyuan/issues/15232

This commit is contained in:
Daniel 2025-07-07 11:35:24 +08:00
parent 9a9f1229b4
commit 64e4ff0d4a
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
15 changed files with 176 additions and 208 deletions

View file

@ -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": "دولار هونغ كونغ",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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": "דולר הונג קונגי",

View file

@ -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",

View file

@ -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": "香港ドル",

View file

@ -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",

View file

@ -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",

View file

@ -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": "Гонконгский доллар",

View file

@ -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": "港幣",

View file

@ -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": "港币",

View file

@ -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]
};

View file

@ -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: