Hello everyone!
I am the developer of the siyuan-jsdraw-plugin, which allows users to seamlessly embed freehand drawing whiteboards into their SiYuan notes.
In the recent months, I've been slowly working to translate my plugin to Chinese, since most of the SiYuan community speaks it. Unfortunately, I don't, so I've been working with AI-generated translations.
Now I want to translate another big part of the project - the js-draw editor itself - so that everyone can enjoy the full experience of freehand drawing. But I'm not the creator of the editor (I have just integrated it into SiYuan), so for this translation, I want to be very careful and make sure that the AI hasn't made any mistake, in order not to bother the upstream developer with needless corrections.
So I'm asking for some help from the Chinese-speaking users of this forum: please, review this translation and tell me if it's good! Your help is greatly apreciated, and if you leave your GitHub username in the comments, I will credit you as a co-author or reviewer of the translation.
You can compare it to other translations here.
import { defaultEditorLocalization, EditorLocalization } from '../localization';
// 简体中文本地化
const localization: EditorLocalization = {
...defaultEditorLocalization,
pen: '画笔',
eraser: '橡皮擦',
select: '选择',
handTool: '平移',
zoom: '缩放',
image: '图片',
inputAltText: '替代文本:',
chooseFile: '选择文件:',
submit: '提交',
cancel: '取消',
resetView: '重置视图',
thicknessLabel: '粗细:',
colorLabel: '颜色:',
fontLabel: '字体:',
textSize: '字号:',
resizeImageToSelection: '按选区调整图片大小',
deleteSelection: '删除选区',
duplicateSelection: '复制选区',
undo: '撤销',
redo: '重做',
pickColorFromScreen: '从屏幕取色',
clickToPickColorAnnouncement: '点击屏幕以选取颜色',
selectionToolKeyboardShortcuts:
'选择工具:使用方向键移动所选元素,按 i 或 o 调整大小。',
touchPanning: '触屏平移',
anyDevicePanning: '任意设备平移',
selectPenType: '工具类型:',
roundedTipPen: '自由画笔',
flatTipPen: '压感笔',
arrowPen: '箭头',
linePen: '直线',
outlinedRectanglePen: '空心矩形',
filledRectanglePen: '实心矩形',
lockRotation: '锁定旋转',
paste: '粘贴',
dropdownShown: (toolName) => `已显示 ${toolName} 下拉菜单`,
dropdownHidden: (toolName) => `已隐藏 ${toolName} 下拉菜单`,
zoomLevel: (zoomPercent) => `缩放:${zoomPercent}%`,
colorChangedAnnouncement: (color) => `颜色已更改为 ${color}`,
imageSize: (size, units) => `图片尺寸:${size} ${units}`,
imageLoadError: (message) => `图片加载错误:${message}`,
errorImageHasZeroSize: '错误:图片尺寸为零',
penTool: (penNumber) => `画笔 ${penNumber}`,
selectionTool: '选择工具',
eraserTool: '橡皮擦工具',
touchPanTool: '触屏平移工具',
twoFingerPanZoomTool: '双指平移与缩放',
undoRedoTool: '撤销/重做工具',
rightClickDragPanTool: '右键拖拽',
pipetteTool: '取色器',
keyboardPanZoom: '键盘平移与缩放快捷键',
textTool: '文本工具',
enterTextToInsert: '输入要插入的文本',
changeTool: '切换工具',
pasteHandler: '复制粘贴处理器',
findLabel: '查找',
toNextMatch: '下一个',
closeDialog: '关闭',
findDialogShown: '已显示查找对话框',
findDialogHidden: '已隐藏查找对话框',
focusedFoundText: (matchIdx, totalMatches) => `第 ${matchIdx} 条结果,共 ${totalMatches} 条`,
toolEnabledAnnouncement: (toolName) => `${toolName} 已启用`,
toolDisabledAnnouncement: (toolName) => `${toolName} 已禁用`,
updatedViewport: '已更新视口',
transformedElements: (elemCount, action) =>
`${elemCount} 个元素已变换 (${action})`,
resizeOutputCommand: (newSize) => `图片尺寸已更改为 ${newSize.w}×${newSize.h}`,
addComponentAction: (componentDescription) => `已添加 ${componentDescription}`,
eraseAction: (elemDescription, countErased) => `已删除 ${countErased} 个 ${elemDescription}`,
duplicateAction: (elemDescription, countErased) => `已复制 ${countErased} 个 ${elemDescription}`,
inverseOf: (actionDescription) => `${actionDescription} 已反向`,
elements: '元素',
erasedNoElements: '未删除任何内容',
duplicatedNoElements: '未复制任何内容',
rotatedBy: (degrees) =>
`已旋转 ${Math.abs(degrees)} 度 ${degrees < 0 ? '顺时针' : '逆时针'}`,
movedLeft: '已向左移动',
movedUp: '已向上移动',
movedDown: '已向下移动',
movedRight: '已向右移动',
zoomedOut: '已缩小',
zoomedIn: '已放大',
selectedElements: (count) => `已选 ${count} 个元素`,
stroke: '笔画',
svgObject: 'SVG 对象',
text: (text) => `文本对象:${text}`,
pathNodeCount: (count) => `可见路径对象:${count} 个`,
textNodeCount: (count) => `可见文本节点:${count} 个`,
textNode: (content) => `文本:${content}`,
imageNodeCount: (nodeCount) => `可见图片节点:${nodeCount} 个`,
imageNode: (label) => `图片:${label}`,
unlabeledImageNode: '未命名图片',
rerenderAsText: '以文本形式重绘',
accessibilityInputInstructions:
'按 t 以文本形式读取视图内容;使用方向键平移视图;点击并拖拽绘制笔画;按 w 放大,按 s 缩小。',
loading: (percentage) => `加载中 ${percentage}%...`,
doneLoading: '加载完成',
imageEditor: '图片编辑器',
undoAnnouncement: (commandDescription) => `已撤销 ${commandDescription}`,
redoAnnouncement: (commandDescription) => `已重做 ${commandDescription}`,
reformatSelection: '重新格式化选区',
documentProperties: '页面',
backgroundColor: '背景色:',
imageWidthOption: '宽度:',
imageHeightOption: '高度:',
useGridOption: '网格:',
toggleOverflow: '更多',
selectAllTool: '全选',
soundExplorer: '声音探索',
disableAccessibilityExploreTool: '关闭声音探索',
enableAccessibilityExploreTool: '开启声音探索',
unionOf: (actionDescription, actionCount) => `合并:${actionCount} 个 ${actionDescription}`,
emptyBackground: '空白背景',
filledBackgroundWithColor: (color) => `已填充背景(${color})`,
restyledElement: (elementDescription) => `已重新样式化 ${elementDescription}`,
};
export default localization;
Also, if you use my plugin and find any wrong translation, make sure to open an issue here. Thanks!
Welcome to here!
Here we can learn from each other how to use SiYuan, give feedback and suggestions, and build SiYuan together.
Signup About