🎨 Modify and standardize database terminology fix #12935 (#13152)

* 中文 i18n

* 简体中文 繁体中文 用户指南

* 繁体中文 i18n

* 英文 用户指南

* 英文 i18n

* 数据库字段菜单

* 数据库视图菜单

* 数据库条目右键菜单

分隔线关联:
https://github.com/siyuan-note/siyuan/issues/12518
https://github.com/siyuan-note/siyuan/issues/12910

* 顺序调整

* 简体中文 繁体中文 i18n
This commit is contained in:
Jeffrey Chen 2024-11-15 00:00:37 +08:00 committed by GitHub
parent cb2560ffda
commit e164e88dc4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 118 additions and 107 deletions

View file

@ -1,4 +1,5 @@
{
"fields": "Attribut",
"dynamicEmoji": "Icône dynamique",
"backlinkContainChildren": "Enthalten Rückverweise untergeordnete Blöcke",
"backlinkContainChildrenTip": "Wenn aktiviert, werden untergeordnete Blöcke in die Berechnung der Rückverweise einbezogen",

View file

@ -1,4 +1,5 @@
{
"fields": "Fields",
"dynamicEmoji": "Dynamic icon",
"backlinkContainChildren": "Do backlinks contain child blocks",
"backlinkContainChildrenTip": "When enabled, child blocks will be included in the backlink calculation",
@ -39,7 +40,7 @@
"confirmDeleteTip": "Are you sure to delete <b>${x}</b>?",
"rollbackTip": "After deletion, it can be restored in [Data History], retained <code class= 'fn__code'>${x}</code> days according to [Settings - Editor - History Retention Days]",
"newView": "Add View",
"newCol": "Add column",
"newCol": "Add field",
"newRow": "Add entry",
"enterKey": "Enter",
"doubleClick": "Double Click",
@ -72,7 +73,7 @@
"removeCard": "Remove flashcard",
"updateLayout": "Update layout",
"dndFolderTip": "Please note that ${x} only inserts the file:// hyperlink and does not copy the file",
"removeCol": "Are you sure you want to delete the <b>${x}</b> column in the database?",
"removeCol": "Are you sure you want to delete the <b>${x}</b> field in the database?",
"video": "Video",
"audio": "Audio",
"updateAll": "Update all",
@ -86,7 +87,7 @@
"lastReviewTime": "Last review time",
"cardStatus": "Card status",
"noSupportTip": "This function does not support the use of card decks",
"insertRowTip": "The newly added rows have been filtered and can be viewed by canceling filtering/searching/sorting",
"insertRowTip": "The newly added entries have been filtered and can be viewed by canceling filtering/searching/sorting",
"insertPhoto": "Take a photo and insert it",
"relativeToToday": "Relative to today",
"current": "This",
@ -111,7 +112,7 @@
"dragFill": "Drag vertically to fill value",
"switchReadonly": "Switch read-only mode",
"original": "Original",
"selectRelation": "Please select the related column first",
"selectRelation": "Please select the related field first",
"backRelation": "Bidirectional",
"thisDatabase": "This database",
"relatedTo": "Relation to",
@ -119,7 +120,7 @@
"rollup": "Rollup",
"rollupProperty": "Property",
"rollupCalc": "Calculate",
"searchRelation": "Search for a relation property",
"searchRelation": "Search for a relation field",
"searchRollupProperty": "Search for a property",
"replaceTypes": {
"text": "Normal text",
@ -162,8 +163,8 @@
"unsplit": "Unsplit",
"unsplitAll": "Unsplit All",
"resetCardTip": "Are you sure reset ${x} flashcards?",
"freezeCol": "Freeze column",
"unfreezeCol": "Unfreeze column",
"freezeCol": "Freeze field",
"unfreezeCol": "Unfreeze field",
"snippetsTip": "The code snippet has been updated, do you want to save it?",
"addBelowAbove": "Click <span class='ft__on-surface'>Add below</span><br>⌥Click <span class='ft__on-surface'>Add above</span>",
"imported": "Import completed",
@ -274,10 +275,10 @@
"filterOperatorIsOnOrAfter": "Is on or after",
"asc": "Ascending",
"desc": "Descending",
"hideCol": "Hide column",
"hideCol": "Hide field",
"hideAll": "Hide all",
"showAll": "Show all",
"showCol": "Show column",
"showCol": "Show field",
"number": "Number",
"date": "Date",
"select": "Select",

View file

@ -1,4 +1,5 @@
{
"fields": "Atributo",
"dynamicEmoji": "Icône dynamique",
"backlinkContainChildren": "¿Los enlaces inversos contienen bloques secundarios?",
"backlinkContainChildrenTip": "Una vez habilitado, los bloques secundarios se incluirán en el cálculo de los enlaces inversos",

View file

@ -1,4 +1,5 @@
{
"fields": "Attribut",
"dynamicEmoji": "Icône dynamique",
"backlinkContainChildren": "Les liens retour contiennent-ils des sous-blocs",
"backlinkContainChildrenTip": "Une fois activé, les sous-blocs seront inclus dans le calcul des liens retour",

View file

@ -1,4 +1,5 @@
{
"fields": "מאפיין",
"dynamicEmoji": "אייקון דינמי",
"backlinkContainChildren": "האם קישורים חוזרים כוללים בלוקים משניים",
"backlinkContainChildrenTip": "לאחר ההפעלה, בלוקים משניים ייכללו בחישוב הקישורים החוזרים",

View file

@ -1,4 +1,5 @@
{
"fields": "Attributo",
"dynamicEmoji": "動的アイコン",
"backlinkContainChildren": "I backlink contengono blocchi figli",
"backlinkContainChildrenTip": "Dopo l'attivazione, i blocchi figli saranno inclusi nel calcolo dei backlink",

View file

@ -1,4 +1,5 @@
{
"fields": "属性",
"dynamicEmoji": "動的アイコン",
"backlinkContainChildren": "バックリンクに子ブロックを含めるかどうか",
"backlinkContainChildrenTip": "有効にすると、子ブロックがバックリンク計算に含まれます",

View file

@ -1,4 +1,5 @@
{
"fields": "Atrybut",
"dynamicEmoji": "Динамическая иконка",
"backlinkContainChildren": "Czy linki zwrotne zawierają bloki podrzędne",
"backlinkContainChildrenTip": "Po włączeniu bloki podrzędne zostaną uwzględnione w obliczeniach linków zwrotnych",

View file

@ -1,4 +1,5 @@
{
"fields": "Атрибут",
"dynamicEmoji": "Динамическая иконка",
"backlinkContainChildren": "Включать ли дочерние блоки в обратные ссылки",
"backlinkContainChildrenTip": "После включения дочерние блоки будут включены в расчет обратных ссылок",

View file

@ -1,4 +1,5 @@
{
"fields": "欄位",
"dynamicEmoji": "動態圖標",
"backlinkContainChildren": "反向鏈接包含子塊",
"backlinkContainChildrenTip": "啟用後子塊將被納入到反向鏈接計算中",
@ -39,7 +40,7 @@
"confirmDeleteTip": "確定刪除<b>${x}</b> 嗎?",
"rollbackTip": "刪除後可在 [資料歷史] 中恢復,按 [設定 - 編輯器 - 歷史保留天數] 保留 <code class= 'fn__code'>${x}</code> 天",
"newView": "新增視圖",
"newCol": "新增",
"newCol": "新增欄位",
"newRow": "新增項目",
"enterKey": "回車",
"doubleClick": "雙擊",
@ -86,7 +87,7 @@
"lastReviewTime": "最後複習時間",
"cardStatus": "卡片狀態",
"noSupportTip": "此功能不支援卡包使用",
"insertRowTip": "新增已被過濾,可取消過濾/搜尋/排序進行查看",
"insertRowTip": "新增條目已被過濾,可取消過濾/搜尋/排序進行查看",
"insertPhoto": "拍照並插入",
"relativeToToday": "相對於今天",
"current": "當前",
@ -111,7 +112,7 @@
"dragFill": "垂直拖動以填充值",
"switchReadonly": "唯讀模式切換",
"original": "原值",
"selectRelation": "請先選擇關聯",
"selectRelation": "請先選擇關聯欄位",
"backRelation": "雙向關聯",
"thisDatabase": "目前資料庫",
"relatedTo": "關聯至",
@ -119,7 +120,7 @@
"rollup": "匯總",
"rollupProperty": "總計欄位",
"rollupCalc": "彙總方式",
"searchRelation": "搜尋關聯",
"searchRelation": "搜尋關聯欄位",
"searchRollupProperty": "搜尋總計欄位",
"replaceTypes": {
"text": "普通文字",
@ -162,8 +163,8 @@
"unsplit": "取消分割畫面",
"unsplitAll": "取消全部分螢幕",
"resetCardTip": "確定重設 ${x} 張閃卡?",
"freezeCol": "固定",
"unfreezeCol": "取消固定",
"freezeCol": "固定欄位",
"unfreezeCol": "取消固定欄位",
"snippetsTip": "程式碼片段已更新,是否儲存?",
"addBelowAbove": "點擊 <span class='ft__on-surface'>在下方新增</span><br>⌥點擊 <span class='ft__on-surface'>在上方新增</span>",
"imported": "導入完成",
@ -227,13 +228,13 @@
"builtIn": "內置",
"endDate": "結束日期",
"needLogin": "該功能需要登錄賬號後才能使用",
"calcResultCountAll": "行計數",
"calcResultCountValues": "值數",
"calcResultCountUniqueValues": "唯一值計數",
"calcResultCountEmpty": "空值計數",
"calcResultCountNotEmpty": "非空值計數",
"calcResultPercentEmpty": "空值佔比",
"calcResultPercentNotEmpty": "非空值佔比",
"calcResultCountAll": "條目數",
"calcResultCountValues": "值",
"calcResultCountUniqueValues": "唯一值",
"calcResultCountEmpty": "未填寫",
"calcResultCountNotEmpty": "已填寫",
"calcResultPercentEmpty": "未填寫佔比",
"calcResultPercentNotEmpty": "已填寫佔比",
"calcResultSum": "求和",
"calcResultAverage": "平均值",
"calcResultMedian": "中位數",
@ -244,13 +245,13 @@
"createWorkspace": "創建工作空間",
"createWorkspaceTip": "確定使用該路徑創建工作空間嗎?",
"calcOperatorNone": "無",
"calcOperatorCountAll": "行計數",
"calcOperatorCountValues": "值數",
"calcOperatorCountUniqueValues": "唯一值計數",
"calcOperatorCountEmpty": "空值計數",
"calcOperatorCountNotEmpty": "非空值計數",
"calcOperatorPercentEmpty": "空值佔比",
"calcOperatorPercentNotEmpty": "非空值佔比",
"calcOperatorCountAll": "條目數",
"calcOperatorCountValues": "值",
"calcOperatorCountUniqueValues": "唯一值",
"calcOperatorCountEmpty": "未填寫",
"calcOperatorCountNotEmpty": "已填寫",
"calcOperatorPercentEmpty": "未填寫佔比",
"calcOperatorPercentNotEmpty": "已填寫佔比",
"calcOperatorSum": "求和",
"calcOperatorAverage": "平均值",
"calcOperatorMedian": "中位數",
@ -274,10 +275,10 @@
"filterOperatorIsOnOrAfter": "晚於或等於",
"asc": "升序",
"desc": "降序",
"hideCol": "隱藏",
"hideCol": "隱藏欄位",
"hideAll": "隱藏全部",
"showAll": "顯示全部",
"showCol": "顯示",
"showCol": "顯示欄位",
"number": "數字",
"date": "日期",
"select": "單選",

View file

@ -1,4 +1,5 @@
{
"fields": "字段",
"dynamicEmoji": "动态图标",
"backlinkContainChildren": "反向链接包含子块",
"backlinkContainChildrenTip": "启用后子块将被纳入到反向链接计算中",
@ -39,7 +40,7 @@
"confirmDeleteTip": "确定删除 <b>${x}</b> 吗?",
"rollbackTip": "删除后可在 [数据历史] 中恢复,按 [设置 - 编辑器 - 历史保留天数] 保留 <code class='fn__code'>${x}</code> 天",
"newView": "添加视图",
"newCol": "添加",
"newCol": "添加字段",
"newRow": "添加条目",
"enterKey": "回车",
"doubleClick": "双击",
@ -72,7 +73,7 @@
"removeCard": "移除闪卡",
"updateLayout": "更新布局",
"dndFolderTip": "请注意 ${x} 仅插入 file:// 超链接,不复制文件",
"removeCol": "确定删除数据库中的 <b>${x}</b> ",
"removeCol": "确定删除数据库中的 <b>${x}</b> 字段",
"video": "视频",
"audio": "音频",
"updateAll": "全部更新",
@ -86,7 +87,7 @@
"lastReviewTime": "最后复习时间",
"cardStatus": "卡片状态",
"noSupportTip": "该功能不支持卡包使用",
"insertRowTip": "新增已被过滤,可取消过滤/搜索/排序进行查看",
"insertRowTip": "新增条目已被过滤,可取消过滤/搜索/排序进行查看",
"insertPhoto": "拍照并插入",
"relativeToToday": "相对于今天",
"current": "当前",
@ -111,7 +112,7 @@
"dragFill": "垂直拖动以填充值",
"switchReadonly": "只读模式切换",
"original": "原值",
"selectRelation": "请先选择关联",
"selectRelation": "请先选择关联字段",
"backRelation": "双向关联",
"thisDatabase": "当前数据库",
"relatedTo": "关联至",
@ -119,7 +120,7 @@
"rollup": "汇总",
"rollupProperty": "汇总字段",
"rollupCalc": "汇总方式",
"searchRelation": "搜索关联",
"searchRelation": "搜索关联字段",
"searchRollupProperty": "搜索汇总字段",
"replaceTypes": {
"text": "普通文本",
@ -162,8 +163,8 @@
"unsplit": "取消分屏",
"unsplitAll": "取消全部分屏",
"resetCardTip": "确定重置 ${x} 张闪卡?",
"freezeCol": "固定",
"unfreezeCol": "取消固定",
"freezeCol": "固定字段",
"unfreezeCol": "取消固定字段",
"snippetsTip": "代码片段已更新,是否保存?",
"addBelowAbove": "点击 <span class='ft__on-surface'>在下方添加</span><br>⌥点击 <span class='ft__on-surface'>在上方添加</span>",
"imported": "导入完成",
@ -227,13 +228,13 @@
"builtIn": "内置",
"endDate": "结束时间",
"needLogin": "该功能需要登录账号后才能使用",
"calcResultCountAll": "行计数",
"calcResultCountValues": "值数",
"calcResultCountUniqueValues": "唯一值计数",
"calcResultCountEmpty": "空值计数",
"calcResultCountNotEmpty": "非空值计数",
"calcResultPercentEmpty": "空值占比",
"calcResultPercentNotEmpty": "非空值占比",
"calcResultCountAll": "条目数",
"calcResultCountValues": "值",
"calcResultCountUniqueValues": "唯一值",
"calcResultCountEmpty": "未填写",
"calcResultCountNotEmpty": "已填写",
"calcResultPercentEmpty": "未填写占比",
"calcResultPercentNotEmpty": "已填写占比",
"calcResultSum": "求和",
"calcResultAverage": "平均值",
"calcResultMedian": "中位数",
@ -244,13 +245,13 @@
"createWorkspace": "创建工作空间",
"createWorkspaceTip": "确定使用该路径创建工作空间吗?",
"calcOperatorNone": "无",
"calcOperatorCountAll": "行计数",
"calcOperatorCountValues": "值数",
"calcOperatorCountUniqueValues": "唯一值计数",
"calcOperatorCountEmpty": "空值计数",
"calcOperatorCountNotEmpty": "非空值计数",
"calcOperatorPercentEmpty": "空值占比",
"calcOperatorPercentNotEmpty": "非空值占比",
"calcOperatorCountAll": "条目数",
"calcOperatorCountValues": "值",
"calcOperatorCountUniqueValues": "唯一值",
"calcOperatorCountEmpty": "未填写",
"calcOperatorCountNotEmpty": "已填写",
"calcOperatorPercentEmpty": "未填写占比",
"calcOperatorPercentNotEmpty": "已填写占比",
"calcOperatorSum": "求和",
"calcOperatorAverage": "平均值",
"calcOperatorMedian": "中位数",
@ -274,10 +275,10 @@
"filterOperatorIsOnOrAfter": "晚于或等于",
"asc": "升序",
"desc": "降序",
"hideCol": "隐藏",
"hideCol": "隐藏字段",
"hideAll": "隐藏全部",
"showAll": "显示全部",
"showCol": "显示",
"showCol": "显示字段",
"number": "数字",
"date": "日期",
"select": "单选",

View file

@ -122,7 +122,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "Add different types of attributes"
"Data": "Add different types of fields"
}
]
}
@ -150,7 +150,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "Add row"
"Data": "Add entry"
}
]
},
@ -185,7 +185,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "Non-content block: Rows added directly to the table, not bound to any content block"
"Data": "Non-content block: Entries added directly to the table, not bound to any content block"
}
]
}
@ -213,7 +213,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "Content block: Rows added by dragging to the table, or rows added through the block menu "
"Data": "Content block: Entries added by dragging to the table, or entries added through the block menu "
},
{
"Type": "NodeTextMark",
@ -470,7 +470,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "Templates can access, calculate and render the values of other attributes in the same piece of data through the syntax introduced in "
"Data": "Templates can access, calculate and render the values of other fields in the same piece of data through the syntax introduced in "
},
{
"Type": "NodeTextMark",
@ -521,7 +521,7 @@
{
"Type": "NodeTextMark",
"TextMarkType": "code",
"TextMarkTextContent": ".action{ .attribute }"
"TextMarkTextContent": ".action{ .field }"
},
{
"Type": "NodeText",
@ -598,7 +598,7 @@
},
{
"Type": "NodeText",
"Data": " attribute demonstrates the sum of "
"Data": " field demonstrates the sum of "
},
{
"Type": "NodeTextMark",

View file

@ -122,7 +122,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "添加不同类型的属性"
"Data": "添加不同类型的字段"
}
]
}
@ -150,7 +150,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "添加"
"Data": "添加条目"
}
]
},
@ -184,7 +184,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "非内容块:直接在表格中添加的,不绑定到任何内容块"
"Data": "非内容块:直接在表格中添加的条目,不绑定到任何内容块"
}
]
}
@ -212,7 +212,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "内容块:通过拖拽到表格添加的,或者通过块标菜单 "
"Data": "内容块:通过拖拽到表格添加的条目,或者通过块标菜单 "
},
{
"Type": "NodeTextMark",
@ -221,7 +221,7 @@
},
{
"Type": "NodeText",
"Data": " 添加的"
"Data": " 添加的条目"
}
]
}
@ -436,7 +436,7 @@
{
"Type": "NodeTextMark",
"TextMarkType": "code",
"TextMarkTextContent": "行计数"
"TextMarkTextContent": "条目数"
},
{
"Type": "NodeText",
@ -480,7 +480,7 @@
},
{
"Type": "NodeText",
"Data": "中介绍的语法访问、计算并渲染同一条数据中其他属性的值:"
"Data": "中介绍的语法访问、计算并渲染同一条数据中其他字段的值:"
}
]
},
@ -520,11 +520,11 @@
{
"Type": "NodeTextMark",
"TextMarkType": "code",
"TextMarkTextContent": ".action{ .属性名 }"
"TextMarkTextContent": ".action{ .字段名 }"
},
{
"Type": "NodeText",
"Data": " 访问视图属性"
"Data": " 访问视图字段"
}
]
}
@ -596,7 +596,7 @@
},
{
"Type": "NodeText",
"Data": " 属性演示了 "
"Data": " 字段演示了 "
},
{
"Type": "NodeTextMark",

View file

@ -122,7 +122,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "新增不同類型的屬性"
"Data": "新增不同類型的欄位"
}
]
}
@ -150,7 +150,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "新增"
"Data": "新增條目"
}
]
},
@ -185,7 +185,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "非內容塊:直接在表格中新增的,不綁定到任何內容塊"
"Data": "非內容塊:直接在表格中新增的條目,不綁定到任何內容塊"
}
]
}
@ -213,7 +213,7 @@
"Children": [
{
"Type": "NodeText",
"Data": "內容塊:透過拖曳到表格新增的,或透過塊標選單 "
"Data": "內容塊:透過拖曳到表格新增的條目,或透過塊標選單 "
},
{
"Type": "NodeTextMark",
@ -222,7 +222,7 @@
},
{
"Type": "NodeText",
"Data": " 新增的"
"Data": " 新增的條目"
}
]
}
@ -437,7 +437,7 @@
{
"Type": "NodeTextMark",
"TextMarkType": "code",
"TextMarkTextContent": "行計數"
"TextMarkTextContent": "條目數"
},
{
"Type": "NodeText",
@ -481,7 +481,7 @@
},
{
"Type": "NodeText",
"Data": "中介紹的語法存取、計算並渲染同一資料中其他屬性的值:"
"Data": "中介紹的語法存取、計算並渲染同一資料中其他欄位的值:"
}
]
},
@ -521,11 +521,11 @@
{
"Type": "NodeTextMark",
"TextMarkType": "code",
"TextMarkTextContent": ".action{ .屬性名 }"
"TextMarkTextContent": ".action{ .欄位名 }"
},
{
"Type": "NodeText",
"Data": " 存取視圖屬性"
"Data": " 存取視圖欄位"
}
]
}
@ -598,7 +598,7 @@
},
{
"Type": "NodeText",
"Data": " 屬性示範了 "
"Data": " 欄位示範了 "
},
{
"Type": "NodeTextMark",

View file

@ -270,7 +270,7 @@ export const avContextmenu = (protyle: IProtyle, rowElement: HTMLElement, positi
/// #if !MOBILE
const blockId = ids[0];
const openSubmenus = openEditorTab(protyle.app, [blockId], undefined, undefined, true);
openSubmenus.push({type: "separator"});
openSubmenus.push({id: "separator_3", type: "separator"});
openSubmenus.push({
icon: "iconAttr",
label: window.siyuan.languages.attr,
@ -581,7 +581,7 @@ ${window.siyuan.languages.insertRowAfter.replace("${x}", '<span class="fn__space
});
menu.addItem({
icon: "iconAttr",
label: window.siyuan.languages.attr,
label: window.siyuan.languages.fields,
type: "submenu",
submenu: editAttrSubmenu
});

View file

@ -142,28 +142,6 @@ export const openCalcMenu = async (protyle: IProtyle, calcElement: HTMLElement,
target: calcElement
});
if (type !== "checkbox") {
calcItem({
menu,
protyle,
colId,
avId,
oldOperator,
operator: "Count values",
data: panelData?.data,
blockID,
target: calcElement
});
calcItem({
menu,
protyle,
colId,
avId,
oldOperator,
operator: "Count unique values",
data: panelData?.data,
blockID,
target: calcElement
});
calcItem({
menu,
protyle,
@ -186,6 +164,28 @@ export const openCalcMenu = async (protyle: IProtyle, calcElement: HTMLElement,
blockID,
target: calcElement
});
calcItem({
menu,
protyle,
colId,
avId,
oldOperator,
operator: "Count values",
data: panelData?.data,
blockID,
target: calcElement
});
calcItem({
menu,
protyle,
colId,
avId,
oldOperator,
operator: "Count unique values",
data: panelData?.data,
blockID,
target: calcElement
});
calcItem({
menu,
protyle,

View file

@ -1372,7 +1372,7 @@ ${hideHTML}`;
<span class="block__icon" style="padding: 8px;margin-left: -4px;" data-type="go-config">
<svg><use xlink:href="#iconLeft"></use></svg>
</span>
<span class="b3-menu__label ft__center">${window.siyuan.languages.attr}</span>
<span class="b3-menu__label ft__center">${window.siyuan.languages.fields}</span>
</button>
<button class="b3-menu__separator"></button>
<button class="b3-menu__item" data-type="nobg">

View file

@ -169,7 +169,7 @@ export const getViewHTML = (data: IAV) => {
<button class="b3-menu__separator"></button>
<button class="b3-menu__item" data-type="go-properties">
<svg class="b3-menu__icon"></svg>
<span class="b3-menu__label">${window.siyuan.languages.attr}</span>
<span class="b3-menu__label">${window.siyuan.languages.fields}</span>
<span class="b3-menu__accelerator">${view.columns.filter((item: IAVColumn) => !item.hidden).length}/${view.columns.length}</span>
<svg class="b3-menu__icon b3-menu__icon--small"><use xlink:href="#iconRight"></use></svg>
</button>