Skip to content

Latest commit

 

History

History
339 lines (246 loc) · 16.5 KB

README-zh-TW.md

File metadata and controls

339 lines (246 loc) · 16.5 KB

Logo Saber

在 Google Play 上取得   在 F-Droid 上取得   在 App Store 下載   下載 Windows 版   在 Flathub 上下載   取得 AppImage   在 Snap Store 上取得

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

Saber是一個專為手寫而生的筆記應用程式。

它被設計得盡可能簡單和直觀,同時仍提供您實際會使用的獨特功能。此外,Saber可以在您所有的設備上使用,無論大小,並在它們之間無縫同步。

值得注意的是,當您處於深色模式時,它可以反轉您的筆記。這使您可以在黑色背景上用白色墨水書寫,這在低光源環境下,例如老師在課堂上關燈時,對眼睛更加友好。圖片和PDF文件也會反轉,因此您仍然可以使用數位教科書而無需煩惱。

Saber使用雙密碼系統來保護您的筆記,使其只能被您存取,即使有人對伺服器擁有完全控制權也是如此。您可以安全地將筆記存儲在官方的Saber伺服器上,或者是其他伺服器,甚至是自己搭建!

本應用程式是完全開源的,任何人都可以查看原始碼,了解它的具體運作方式以及如何處理您的資料。許多其他筆記應用程式是閉源和專有的,這意味著它們的內部運作對公眾來說是一個謎。

作為一名數學生,我在其他應用中經常遇到的問題之一是,使用其他應用時,突出顯示多行方程總是很麻煩,因為突出顯示在重疊時會改變顏色。我遇到的另一個問題是,在某些應用程式中,突出顯示會在文字上方渲染,將其淡化,使其難以閱讀。Saber的突出顯示沒有這些問題。它使用的畫布合成技術以一種優於傳統紙張相一致的方式呈現突出顯示,在處理重疊時保持顏色一致。

Saber具有使筆記井井有條所需的一切功能。在無限嵌套的資料夾中創建資料夾,盡情發揮您的創意,而且對於嵌套資料夾的數量沒有限制。即使筆記可能深藏在嵌套的資料夾中,您仍然可以輕鬆存取,因為最近的筆記始終顯示在主螢幕上。

透過Saber,發現一種全新的捕捉和組織思緒的方式。無論您是學生、專業人士還是具有創造力的思維者,Saber都是您在數位手寫中信賴的伙伴。立即下載,讓您的思想自由流暢!

GitHub release (最新發行) Flathub F-Droid GitHub all releases Flathub GitHub Sponsors GitHub codecov

點擊即可顯示/隱藏螢幕截圖

特色

請參閱#1 Saber progress

安裝

點擊顯示/隱藏安裝說明

Android

選項:

  1. Play 商店 下載

  2. F-Droid 下載

    • 請注意,F-Droid 版本並未針對 Onyx Boox 裝置進行最佳化,因為這需要來自 Onyx 的 專有依賴項
  3. 從最新的 Release 下載並安裝 Saber_{version}.apk

Linux

選項 1(推薦): 從 Flathub 安裝 flatpak: flatpak --user install com.adilhanney.saber

選項 2: 從最新的 Release 下載 Saber-{version}-x86_64.AppImage, 使用 chmod +x Saber-*-x86_64.AppImage 使其可執行,然後運行它。

選項 3: 感謝 @soumyaDghosh,有一個非官方的 snap 可用。 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

這足以在您自己的電腦上使用,但如果您想重新分發您的構建, 您需要使用可預測的環境:分叉此倉庫並使用 GitHub Action 為 Linux 構建

Android

flutter build apk

您可能需要生成簽名證書並創建 android/key.properties 檔案。 有關 https://docs.flutter.dev/deployment/android#create-an-upload-keystore 的更多資訊

注意:F-Droid 版本的構建略有不同:

./patches/remove_proprietary_dependencies.sh
flutter build apk --dart-define=OFFLINE_FONTS_ONLY="true"

Windows

flutter build windows

Windows 安裝程式是使用 Inno Setup 創建的。 要創建您自己的安裝程式,請運行上面的構建指令,然後編輯並運行 installers/desktop_inno_script.iss 使用 Inno 安裝編譯器。

iOS and macOS

如果您有 macOS 電腦,您可以 針對 iOS 構建 使用 flutter build ipa針對 macOS 構建 使用 flutter build macos

如果不這樣做,請分叉此倉庫並使用 GitHub Action 針對 macOS 和 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)
  • 匈牙利文 (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
    # 忽略其他語言...
  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 了解更多資訊。

翻譯應用程式商店描述

我們有 2 種應用程式商店的描述格式:

  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]=您的翻譯

    如果您還需要翻譯 Name 鍵,請執行相同的操作。

  3. Flathub (選擇性):

    i. 由於技術性稍強,您可以跳過 Flathub 部分,我將複製上一步的翻譯。

    ii. 在 flatpak/com.adilhanney.saber.metainfo.xml</description> 標記之前,添加一行翻譯內容,使用以下格式,其中 XX 是您的區域代碼:

    <p xml:lang="XX">您的翻譯</p>

    iii. 在同一個檔案中,您可以透過執行相同的操作來翻譯變更日誌位於 <release> 標籤中 </description> 標籤之前的內容。

支持Saber

如果您喜歡 Saber,請考慮通過以下方式支持它:

  • 傳播這個詞!
  • 在 GitHub 上為該倉庫加星標
  • GitHub Sponsors 上贊助
  • 通過 PayPal 贊助
  • 在 Nextcloud 伺服器上購買更多存儲空間,請參閱定價

開發筆記

顯示/隱藏開發筆記
  • When updating the app version:
    • Run ./scripts/bump_version.sh <version-name> <version-code> (Run ./scripts/bump_version.sh --help for more info)
    • Update the changelogs in metadata/en-US/changelogs/ and flatpak/com.adilhanney.saber.metainfo.xml, and run dart scripts/translate_changelogs.dart as directed by the script.
  • When updating the icons, run the following commands:
    • General: dart run icons_launcher:create
    • Flatpak icons: cd assets/icon && ./resize-icon.sh
  • When updating the translations...
    • Run the following commands:
      • dart run slang apply --locale=XX if you need to apply _missing_translations.yaml
      • dart run slang
      • dart run slang analyze --full
    • If you're adding a new language, update:
      • CFBundleLocalizations in ios/Runner/Info.plist
      • CFBundleLocalizations in macos/Runner/Info.plist
      • android/app/src/main/res/xml/locales_config.xml
      • lib/data/locales.dart
      • README.md above in the "Translating" section.
      • and run dart scripts/translate_changelogs.dart to translate the changelog.