diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json
index 139b1cfe8..f011b84c0 100644
--- a/app/appearance/langs/ar_SA.json
+++ b/app/appearance/langs/ar_SA.json
@@ -253,16 +253,23 @@
"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": "دولار هونغ كونغ",
+ "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..6c06c9497 100644
--- a/app/appearance/langs/de_DE.json
+++ b/app/appearance/langs/de_DE.json
@@ -253,16 +253,23 @@
"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",
+ "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..5868a6891 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -253,16 +253,23 @@
"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",
+ "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..791c3ac64 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -253,16 +253,23 @@
"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",
+ "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..a9de3f59b 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -253,16 +253,23 @@
"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",
+ "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..a6b5c9605 100644
--- a/app/appearance/langs/he_IL.json
+++ b/app/appearance/langs/he_IL.json
@@ -253,16 +253,23 @@
"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": "דולר הונג קונגי",
+ "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..9bbefee47 100644
--- a/app/appearance/langs/it_IT.json
+++ b/app/appearance/langs/it_IT.json
@@ -253,16 +253,23 @@
"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",
+ "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..3a2d8f7dc 100644
--- a/app/appearance/langs/ja_JP.json
+++ b/app/appearance/langs/ja_JP.json
@@ -253,16 +253,23 @@
"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": "香港ドル",
+ "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..c6167b2cb 100644
--- a/app/appearance/langs/pl_PL.json
+++ b/app/appearance/langs/pl_PL.json
@@ -253,16 +253,23 @@
"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",
+ "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..7f2a7c600 100644
--- a/app/appearance/langs/pt_BR.json
+++ b/app/appearance/langs/pt_BR.json
@@ -253,16 +253,23 @@
"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",
+ "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..b5873e368 100644
--- a/app/appearance/langs/ru_RU.json
+++ b/app/appearance/langs/ru_RU.json
@@ -253,16 +253,23 @@
"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": "Гонконгский доллар",
+ "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..a7366eb0a 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -253,16 +253,23 @@
"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": "港幣",
+ "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..dd4ec71ce 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -253,16 +253,23 @@
"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": "港币",
+ "numberFormatTWD": "新台币",
+ "numberFormatMOP": "澳门元",
+ "numberFormatSGD": "新加坡元",
+ "numberFormatNZD": "新西兰元",
"email": "邮箱",
"phone": "电话",
"inboxTip": "打开用户指南搜索 收集箱 查看使用说明",
diff --git a/app/src/protyle/render/av/number.ts b/app/src/protyle/render/av/number.ts
index dcf772ba0..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,70 @@ export const formatNumber = (options: {
protyle: options.protyle,
colId: options.colId,
avID: options.avID,
- format: "franc",
+ format: "CHF",
+ 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,
});
@@ -169,32 +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;
+ 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 593cce3d8..082ea97e4 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"
+
+ 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) {
@@ -443,36 +451,57 @@ 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:
+ 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)
}
diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go
index 55d4f10eb..9ed567f73 100644
--- a/kernel/model/attribute_view.go
+++ b/kernel/model/attribute_view.go
@@ -145,20 +145,75 @@ 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
// 生成分组数据
- 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:
+ 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 {
+ 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
+ })
+ // TODO Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964
+ }
+
+ groupItemsMap := 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 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
+ }
+
+ if group.Range.NumStart > value.Number.Content || group.Range.NumEnd < value.Number.Content {
+ groupName = notInRange
+ break
+ }
+
+ 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))
+ }
+ }
+ }
+ groupItemsMap[groupName] = append(groupItemsMap[groupName], item)
+ }
+
+ for name, groupItems := range groupItemsMap {
var v *av.View
switch view.LayoutType {
case av.LayoutTypeTable:
@@ -168,10 +223,12 @@ 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())
}
+ v.Name = name
view.Groups = append(view.Groups, v)
+ view.GroupDefault = name == defaultGroupName
}
err = av.SaveAttributeView(attrView)