Skip to content

Latest commit

 

History

History
349 lines (263 loc) · 16.6 KB

README-zh-CN.md

File metadata and controls

349 lines (263 loc) · 16.6 KB

Logo Saber

Get it on Google Play   Get it on F-Droid   Download on the App Store   Download for Windows   Download on Flathub   Get it as an AppImage   Get it from the Snap Store

English | čeština | Deutsch | 中文 (简体中文, 中国) | 中文 (繁體, 台灣) | العربية

Saber 是一款专为手写而设计的笔记应用。

它的设计在尽可能简单和直观的同时仍然为您提供实际使用的独特功能。此外,Saber 可以在你所有的设备上使用,无论大屏幕还是小屏幕,并在它们之间无缝同步。

值得注意的是,当你使用黑暗模式时,它可以反转你的笔记颜色。这样你就可以在黑色背景上用白色墨水书写,在光线较暗的环境下,比如老师在课堂上关灯的时候,您可以看得更清楚。图像和 pdf 文件也可以被反转,所以您仍然可以使用数字打印输出或教科书,而不必大惊小怪。

Saber 使用双密码系统来保护您的笔记,除了您之外,任何人都无法查看您的笔记,即使他人完全控制了服务器。您可以将笔记安全地存储在 Saber 官方服务器、其他服务器或自己的服务器上!

这款应用程序完全开源,任何人都可以查看源代码,了解它的具体操作和数据处理方式。许多其他笔记应用程序都是闭源和专有的,这意味着它们的内部运作对公众来说是个谜。

作为一个学习数学的人,使用其他应用程序突出显示多行公式总是很麻烦,因为当荧光笔与自身重叠时会改变颜色。我遇到的另一个问题是,在某些应用程序中,荧光笔会显示在文本上方,使文本变淡,难以阅读。 Saber 的荧光笔就不会出现这种问题。它利用画布合成来渲染荧光笔,其处理重叠和保持颜色一致性的方式与传统纸张一致/优于传统纸张。

Saber 可以满足您整理笔记的一切需求。您可以随心所欲地创建文件夹内的文件夹,嵌套文件夹的数量不受限制。即使笔记被深埋在嵌套文件夹中,您仍然可以通过主屏幕上的最新笔记轻松访问它。

使用 Saber,探索一种全新的方式来捕捉和组织您的想法。无论您是学生、专业人士还是创意人士,Saber 都是您值得信赖的数字手写工具。立即下载,让您的创意自由流淌!

GitHub release (latest by date) Flathub F-Droid GitHub all releases Flathub GitHub Sponsors GitHub codecov

轻按显示/隐藏屏幕截图

特性

请阅读 #1 Saber 进展.

安装

点击显示/隐藏安装说明

Android

选项:

  1. Play Store 下载

  2. F-Droid 下载

    • 请注意,F-Droid 构建没有针对 Onyx Boox 设备进行优化,因为这将需要来自 Onyx 的专有依赖
  3. 从最新的 Release 下载 Saber_{version}.apk

Linux

选项 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

Windows

从最新的 Release 现在和安装SaberInstaller_{version}.exe

如果有丢失 dll 的错误,请确保已安装 Visual C++ Redistributable

iOS 和 macOS

App Store 下载 Saber。

从源代码构建

点击显示/隐藏构建说明

1. 安装 flutter

https://docs.flutter.dev/get-started/install

2. 克隆此项目

git clone https://github.com/saber-notes/saber.git

3. 下载依赖

flutter pub get

4. 安装其他依赖项

设置 super_clipboard,可以总结为:

  • 安装 Rust
  • 如果你要构建 Android,安装 NDK 26.1.10909125

5. 构建...

Linux

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 构建

Android

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"

Windows

flutter build windows

Windows 安装器使用 Inno Setup 创建。 要创建自己的安装程序,请运行上面的构建命令,然后编辑并使用 Inno Setup Compiler 运行 installers/desktop_inno_script.iss

iOS 和 macOS

如果你有一台 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 看看是否有翻译缺失。

  1. 使用这个链接 编辑 _missing_translations.yaml.
  2. 用你的语言更新 _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...
  3. 打开拉取请求!剩下的我来做

添加一个新语言

  1. 查找您的地区代码 这里, 如:印地语是 hi,法语是 fr,孟加拉语是 bn,阿拉伯语是 ar,等等。
  2. 使用 这个链接lib/i18n/ 创建新文件,命名为 strings_XX.i18n.yaml 其中 XX 是您的地区代码。
  3. 复制现有文件的内容,例如 lib/i18n/strings.i18n.yaml 并用你自己的翻译代替。 如果您不知道字符串的翻译,只需删除该行。
  4. 打开拉取请求!

也可以参考 slang's Getting Started 获取更多信息。

翻译应用商店描述

我们有两种格式的应用商店描述:

  1. F-Droid/Play Store:

    i. 打开 metadata/en-US/ 并复制 full_description.txtshort_description.txt 文件到 metadata/XX/ 文件夹,其中 XX 是您的地区代码. 然后翻译文件的内容。

    ii. 更改日志会自动从英文版本翻译过来。 如果您发现错误,请编辑翻译后的变更日志 metadata/XX/changelogs/<version-code>.txt 其中 XX 是您的地区代码。

  2. Linux .desktop 文件:

    i. 打开 flatpak/com.adilhanney.saber.desktop 并为 Comment 键添加一行,格式如下,其中 XX 是您的地区代码:

    Comment[XX]=Your translation

    如果还需要翻译 Name 键,请执行相同操作

  3. 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 where XX is your locale code:

    <p xml:lang="XX">Your translation</p>

    iii. 在同一个文件中,您可以通过执行同样的操作来翻译变更日志 在它们的 </description> 结束标记之前的 <release> 标记中的东西。

支持 Saber

如果您喜欢 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
    • 如果要添加新语言,请更新:
      • CFBundleLocalizationsios/Runner/Info.plist
      • CFBundleLocalizationsmacos/Runner/Info.plist
      • android/app/src/main/res/xml/locales_config.xml
      • lib/data/locales.dart
      • README.md 上面的“翻译”部分。
      • 并运行 dart scripts/translate_changelogs.dart 翻译更新日志。