Replace the single-page PdfPageView bitmap with a pdfrx PdfViewer: real vector text, continuous scroll, native pinch-zoom (no custom zoom solver, so no zoom-jump here). Ink is glued per-page via pageOverlaysBuilder; the pen is captured at the viewer level by PenCaptureRegion while touch falls through to scroll / pinch / text-select. Add select-text -> highlight via PdfTextSelectionParams: the selection's fragment rects are stored as normalized page rects and drawn under the ink. In-memory only for now. Per-page persistence, undo/redo, tools, colors, thumbnails and pen settings are reused verbatim. analyze clean, 270 tests green.
177 lines
3.5 KiB
Dart
177 lines
3.5 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 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';
|
|
}
|
|
}
|