All checks were successful
CI / Windows build (push) Successful in 14m54s
Replace the 2-tool ink system with a data-driven, Krita-style BrushProfile (lib/editor/engine/brush.dart). Adding a brush is a const map entry, not render-path branching. Four presets from the rnote/krita spec: - fountain pen: quadratic (p^2) pressure, wide dynamic width - ballpoint: near-constant width (thinning 0.15) - highlighter: flat width, square caps - pencil: sqrt(p) pressure, moderate width Pressure is pre-warped per brush via PressureCurve(gamma) before perfect_freehand; geometry fields (thinning/streamline/smoothing/ caps) flow through the shared stroke recipe so the PDF overlay and the note/slide PenCanvas both honor the brush. Brush kind is now persisted on the stroke model. Picker added to all three toolbars. Opacity/multiply and pencil grain are carried as data but not yet composited (TODO brush-opacity / brush-texture); this increment is width + pressure-curve differentiation. analyze clean, 283 tests.
192 lines
3.7 KiB
Dart
192 lines
3.7 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for Chinese (`zh`).
|
|
class AppLocalizationsZh extends AppLocalizations {
|
|
AppLocalizationsZh([String locale = 'zh']) : super(locale);
|
|
|
|
@override
|
|
String get appTitle => 'BadNote';
|
|
|
|
@override
|
|
String get settings => '设置';
|
|
|
|
@override
|
|
String get search => '搜索';
|
|
|
|
@override
|
|
String get importPdf => '导入 PDF';
|
|
|
|
@override
|
|
String get importPpt => '导入 PPT';
|
|
|
|
@override
|
|
String get penCanvasBeta => '手写画布(测试版)';
|
|
|
|
@override
|
|
String get newNote => '新建笔记';
|
|
|
|
@override
|
|
String get open => '打开';
|
|
|
|
@override
|
|
String get cancel => '取消';
|
|
|
|
@override
|
|
String get delete => '删除';
|
|
|
|
@override
|
|
String get deleteNoteTitle => '删除笔记?';
|
|
|
|
@override
|
|
String get deleteNote => '删除笔记';
|
|
|
|
@override
|
|
String get openInSplitView => '分屏打开';
|
|
|
|
@override
|
|
String get splitViewSubtitle => 'PDF 参考 + 草稿纸';
|
|
|
|
@override
|
|
String get removeDocument => '移除文档';
|
|
|
|
@override
|
|
String get ok => '确定';
|
|
|
|
@override
|
|
String get pickColor => '选择颜色';
|
|
|
|
@override
|
|
String get clearSettingsTitle => '清除所有本地设置?';
|
|
|
|
@override
|
|
String get clear => '清除';
|
|
|
|
@override
|
|
String get settingsReset => '设置已恢复默认';
|
|
|
|
@override
|
|
String get themeSystem => '跟随系统';
|
|
|
|
@override
|
|
String get themeLight => '浅色';
|
|
|
|
@override
|
|
String get themeDark => '深色';
|
|
|
|
@override
|
|
String get seedColorDesc => 'Material 3 主题种子色';
|
|
|
|
@override
|
|
String get searchHint => '搜索笔记和文档…';
|
|
|
|
@override
|
|
String searchError(String error) {
|
|
return '搜索出错:$error';
|
|
}
|
|
|
|
@override
|
|
String noResultsFor(String query) {
|
|
return '没有“$query”的结果';
|
|
}
|
|
|
|
@override
|
|
String get typeToSearch => '输入以搜索你的笔记和文档';
|
|
|
|
@override
|
|
String get sectionNotes => '笔记';
|
|
|
|
@override
|
|
String get sectionDocuments => '文档';
|
|
|
|
@override
|
|
String pageLabel(int page) {
|
|
return '第 $page 页';
|
|
}
|
|
|
|
@override
|
|
String get processingPptx => '正在处理 PPTX…';
|
|
|
|
@override
|
|
String get processingPresentation => '正在处理演示文稿…';
|
|
|
|
@override
|
|
String get couldNotOpenPresentation => '无法打开演示文稿。';
|
|
|
|
@override
|
|
String get toolPen => '钢笔';
|
|
|
|
@override
|
|
String get toolHighlighter => '荧光笔';
|
|
|
|
@override
|
|
String get toolEraser => '橡皮擦';
|
|
|
|
@override
|
|
String get brushPicker => '笔刷';
|
|
|
|
@override
|
|
String get brushFountainPen => '钢笔';
|
|
|
|
@override
|
|
String get brushBallpoint => '圆珠笔';
|
|
|
|
@override
|
|
String get brushPencil => '铅笔';
|
|
|
|
@override
|
|
String get brushHighlighter => '荧光笔';
|
|
|
|
@override
|
|
String get actionUndo => '撤销';
|
|
|
|
@override
|
|
String get actionRedo => '重做';
|
|
|
|
@override
|
|
String get fingerDrawingOn => '手指书写:开';
|
|
|
|
@override
|
|
String get fingerDrawingOff => '手指书写:关(仅手写笔)';
|
|
|
|
@override
|
|
String get pages => '页面';
|
|
|
|
@override
|
|
String get penSettings => '手写笔设置';
|
|
|
|
@override
|
|
String get inputDiagnostic => '输入诊断(写入日志文件)';
|
|
|
|
@override
|
|
String get back => '返回';
|
|
|
|
@override
|
|
String get previousPage => '上一页';
|
|
|
|
@override
|
|
String get nextPage => '下一页';
|
|
|
|
@override
|
|
String get toolSelectText => '选择文字';
|
|
|
|
@override
|
|
String get actionHighlightSelection => '高亮所选';
|
|
|
|
@override
|
|
String failedToOpenPdf(String error) {
|
|
return '打开 PDF 失败:\n$error';
|
|
}
|
|
|
|
@override
|
|
String get pdfNoPages => 'PDF 没有任何页面。';
|
|
|
|
@override
|
|
String pageOfPages(int current, int total) {
|
|
return '$current / $total';
|
|
}
|
|
}
|