English | čeština | Deutsch | 中文 (简体中文, 中国) | 中文 (繁體, 台灣) | العربية
Saber 是一款专为手写而设计的笔记应用。
它的设计在尽可能简单和直观的同时仍然为您提供实际使用的独特功能。此外,Saber 可以在你所有的设备上使用,无论大屏幕还是小屏幕,并在它们之间无缝同步。
值得注意的是,当你使用黑暗模式时,它可以反转你的笔记颜色。这样你就可以在黑色背景上用白色墨水书写,在光线较暗的环境下,比如老师在课堂上关灯的时候,您可以看得更清楚。图像和 pdf 文件也可以被反转,所以您仍然可以使用数字打印输出或教科书,而不必大惊小怪。
Saber 使用双密码系统来保护您的笔记,除了您之外,任何人都无法查看您的笔记,即使他人完全控制了服务器。您可以将笔记安全地存储在 Saber 官方服务器、其他服务器或自己的服务器上!
这款应用程序完全开源,任何人都可以查看源代码,了解它的具体操作和数据处理方式。许多其他笔记应用程序都是闭源和专有的,这意味着它们的内部运作对公众来说是个谜。
作为一个学习数学的人,使用其他应用程序突出显示多行公式总是很麻烦,因为当荧光笔与自身重叠时会改变颜色。我遇到的另一个问题是,在某些应用程序中,荧光笔会显示在文本上方,使文本变淡,难以阅读。 Saber 的荧光笔就不会出现这种问题。它利用画布合成来渲染荧光笔,其处理重叠和保持颜色一致性的方式与传统纸张一致/优于传统纸张。
Saber 可以满足您整理笔记的一切需求。您可以随心所欲地创建文件夹内的文件夹,嵌套文件夹的数量不受限制。即使笔记被深埋在嵌套文件夹中,您仍然可以通过主屏幕上的最新笔记轻松访问它。
使用 Saber,探索一种全新的方式来捕捉和组织您的想法。无论您是学生、专业人士还是创意人士,Saber 都是您值得信赖的数字手写工具。立即下载,让您的创意自由流淌!
请阅读 #1 Saber 进展.
点击显示/隐藏安装说明
选项:
-
从 Play Store 下载
-
从 F-Droid 下载
- 请注意,F-Droid 构建没有针对 Onyx Boox 设备进行优化,因为这将需要来自 Onyx 的专有依赖。
-
从最新的 Release 下载
Saber_{version}.apk
。
选项 1 推荐:
从 Flathub 安装: flatpak --user install com.adilhanney.saber
.
选项2 2:
从最新的 Release 下载 Saber-{version}-x86_64.AppImage
,使用 chmod +x Saber-*-x86_64.AppImage
使其可执行,然后运行它。
选项 3:
有一个非官方的 snap 渠道,感谢 @soumyaDghosh。
sudo snap install saber
从最新的 Release 现在和安装SaberInstaller_{version}.exe
。
如果有丢失 dll 的错误,请确保已安装 Visual C++ Redistributable。
从 App Store 下载 Saber。
点击显示/隐藏构建说明
https://docs.flutter.dev/get-started/install
git clone https://github.com/saber-notes/saber.git
flutter pub get
设置 super_clipboard,可以总结为:
- 安装 Rust
- 如果你要构建 Android,安装 NDK 26.1.10909125
sudo apt install libsecret-1-dev libjsoncpp-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev webkit2gtk-4.1-dev
# Or for Fedora...
sudo dnf install libsecret-devel jsoncpp-devel gstreamer1-devel gstreamer1-plugins-base-devel webkit2gtk4.1-devel
flutter build linux
这对于在您自己的计算机上使用已经足够好了。但是如果您想重新分发您的构建,你需要使用一个可预测的环境:fork 这个仓库并使用 GitHub Action 为 Linux 构建。
flutter build apk
你需要创建一个签名证书并创建 android/key.properties
文件。更多信息请参考:https://docs.flutter.dev/deployment/android#create-an-upload-keystore
注意: FOSS/F-Droid 构建的方式略有不同:
./patches/remove_proprietary_dependencies.sh
flutter build apk --dart-define=OFFLINE_FONTS_ONLY="true"
flutter build windows
Windows 安装器使用 Inno Setup 创建。 要创建自己的安装程序,请运行上面的构建命令,然后编辑并使用 Inno Setup Compiler 运行 installers/desktop_inno_script.iss
如果你有一台 macOS 电脑,就可以使用 flutter build ipa
为 iOS 构建或者使用 flutter build macos
为 macOS 构建。
如果你不这样做,fork 这个仓库并使用 GitHub Action Build for macOS and iOS. 或者,跟随这个 YouTube 教程 How to compile a flutter application to iPhone with no mac (free | no jailbreak) 使用 Codemagic 手动构建。
所有的翻译都是众包的。到目前为止,Saber 被翻译成:
- 英语 (en)
- 阿拉伯语 (ar)
- 捷克语 (cs)
- 德语 (de)
- 西班牙语 (es)
- 波斯语 (fa)
- 法语 (fr)
- 希伯来语 (he)
- 匈牙利语 (hu)
- 意大利语 (it)
- 日语 (ja)
- 巴西葡萄牙语 (pt_BR)
- 俄语 (ru)
- 土耳其语 (tr)
- 简体中文 (zh_Hans_CN)
- 繁体中文 (zh_Hant_TW)
检查 _missing_translations.yaml 看看是否有翻译缺失。
- 使用这个链接
编辑
_missing_translations.yaml
. - 用你的语言更新
_missing_translations.yaml
,例如更新德语(de)de: editor: newerFileFormat: title: Diese Notiz wurde mit einer neueren Version von Saber bearbeitet subtitle: Wenn du diese Notiz bearbeitest, können Daten verloren gehen. Möchtest du die Notiz trotzdem öffnen? openAnyway: Trotzdem öffnen cancel: Abbruch # ignore the other languages...
- 打开拉取请求!剩下的我来做
- 查找您的地区代码 这里,
如:印地语是
hi
,法语是fr
,孟加拉语是bn
,阿拉伯语是ar
,等等。 - 使用 这个链接
在
lib/i18n/
创建新文件,命名为strings_XX.i18n.yaml
其中XX
是您的地区代码。 - 复制现有文件的内容,例如
lib/i18n/strings.i18n.yaml
并用你自己的翻译代替。 如果您不知道字符串的翻译,只需删除该行。 - 打开拉取请求!
也可以参考 slang
's Getting Started 获取更多信息。
我们有两种格式的应用商店描述:
-
F-Droid/Play Store:
i. 打开
metadata/en-US/
并复制full_description.txt
和short_description.txt
文件到metadata/XX/
文件夹,其中XX
是您的地区代码. 然后翻译文件的内容。ii. 更改日志会自动从英文版本翻译过来。 如果您发现错误,请编辑翻译后的变更日志
metadata/XX/changelogs/<version-code>.txt
其中XX
是您的地区代码。 -
Linux .desktop 文件:
i. 打开
flatpak/com.adilhanney.saber.desktop
并为Comment
键添加一行,格式如下,其中XX
是您的地区代码:Comment[XX]=Your translation
如果还需要翻译
Name
键,请执行相同操作 -
Flathub(可选):
i. Since this is slightly more technical, you can skip the Flathub part if you want to and I'll copy the translations from the above section.
ii. In
flatpak/com.adilhanney.saber.metainfo.xml
before the</description>
closing tag, add a line for your translation with the following format whereXX
is your locale code:<p xml:lang="XX">Your translation</p>
iii. 在同一个文件中,您可以通过执行同样的操作来翻译变更日志 在它们的
</description>
结束标记之前的<release>
标记中的东西。
如果您喜欢 Saber,请考虑通过以下方式予以支持:
- 传播消息!
- 在 GitHub 上 Star 项目
- 在 GitHub 赞助商上赞助我
- 通过 PayPal 捐款
- 在 Nextcloud 服务器上购买更多存储:请参阅 定价
显示/隐藏开发说明
- 当更新应用版本时:
- 运行
./scripts/bump_version.sh <version-name> <version-code>
(运行./scripts/bump_version.sh --help
获取更多信息) - 更新
metadata/en-US/changelogs/
中的变更日志和flatpak/com.adilhanney.saber.metainfo.xml
,并按照剧本的指示运行dart scripts/translate_changelogs.dart
。
- 运行
- 当更新图标时,运行以下命令:
- 概述:
dart run icons_launcher:create
- Flatpak 图标:
cd assets/icon && ./resize-icon.sh
- 概述:
- 当更新翻译时...
- 运行以下命令:
- 如果你需要应用 _missing_translations.yaml:
dart run slang apply --locale=XX
dart run slang
dart run slang analyze --full
- 如果你需要应用 _missing_translations.yaml:
- 如果要添加新语言,请更新:
CFBundleLocalizations
在ios/Runner/Info.plist
CFBundleLocalizations
在macos/Runner/Info.plist
android/app/src/main/res/xml/locales_config.xml
lib/data/locales.dart
README.md
上面的“翻译”部分。- 并运行
dart scripts/translate_changelogs.dart
翻译更新日志。
- 运行以下命令: