|
2 years ago | |
---|---|---|
android | 2 years ago | |
assets | 2 years ago | |
integration_test | 2 years ago | |
ios | 2 years ago | |
lib | 2 years ago | |
linux | 2 years ago | |
macos | 2 years ago | |
test | 2 years ago | |
test_driver | 2 years ago | |
windows | 2 years ago | |
.drone.yml | 2 years ago | |
.gitignore | 2 years ago | |
.metadata | 2 years ago | |
ARCH.md | 2 years ago | |
LIBCWTCH-GO.version | 2 years ago | |
LICENSE | 2 years ago | |
README.md | 2 years ago | |
SPEC.md | 2 years ago | |
cwtch-android-lifecycle.png | 2 years ago | |
cwtch.png | 2 years ago | |
fetch-libcwtch-go.ps1 | 2 years ago | |
fetch-libcwtch-go.sh | 2 years ago | |
fetch-tor-win.ps1 | 2 years ago | |
fetch-tor.sh | 2 years ago | |
l10n.yaml | 2 years ago | |
pubspec.lock | 2 years ago | |
pubspec.yaml | 2 years ago | |
quality.sh | 2 years ago | |
regenerate_opaque_theme.sh | 2 years ago | |
update-icons.sh | 2 years ago |
README.md
Cwtch UI
A Flutter based Cwtch UI.
This README covers build instructions, for information on Cwtch itself please go to https://cwtch.im
Installing
- Android: Available from the Google Play Store (currently patrons only) or from https://cwtch.im/download/ as an APK
- Windows: Available from https://cwtch.im/download/ as an installer or .zip file
- Linux: Available from https://cwtch.im/download/ as a .tar.gz
install.home.sh
installs the app into your home directoryinstall.sys.sh
as root to install system wide- or run out of the unziped directory
- MacOS: Cwtch.dmg coming soon...
Running
Cwtch processes the following environment variables:
CWTCH_HOME=
overrides the default storage path of~/.cwtch
with what ever you chooseLOG_FILE=
will reroute all of libcwtch-go's logging to the specified file instead of the consoleLOG_LEVEL=debug
will set the log level to debug instead of info
Building
Getting Started
First you will need a valid flutter sdk installation
and run flutter pub get
to fetch dependencies.
You will probably want to disable Analytics on the Flutter Tool: flutter config --no-analytics
Building on Linux (for Linux)
- run
fetch-libcwtch-go.sh
libCwtch-go to fetch a prebuild version oflibCwtch-go.so
go to./linux
. Include./linux
inLD_LIBRARY_PATH
- run
fetch-tor.sh
and/or ensure thattor
is in$PATH
- run
flutter run -d linux
Building on Windows (for Windows)
- run
fetch-libcwtch-go.ps1
to fetch a prebuild version oflibCwtch.dll
- run
fetch-tor-win.ps1
to fetch Tor for windows - run
flutter run -d windows
Building on Linux/Windows (for Android)
- Follow the steps above to fetch
libCwtch-go
andtor
(these will fetch Android versions of these binaries also) - run
flutter run
with an Android phone connect via USB (or some other valid debug mode)
Building on MacOS
- Navigate to https://git.openprivacy.ca/cwtch.im/libcwtch-go/releases and download the latest libCwtch.dylib into this folder
- Download and install Tor Browser (it's currently the only way to get tor for macos)
flutter build macos
./macos/package-release.sh
results in a Cwtch.dmg that has libCwtch.dylib and tor in it as well and can be installed into Applications
Known Platform Issues
- Windows: Flutter engine has a known bug around the Right Shift key being sticky. We have implemented a partial workaround, if this happens, tap left shift and it will reset.
l10n Instructions
Adding a new string
Strings are managed directly from our Lokalise(url?) project. Keys should be valid Dart variable names in lowerCamelCase. After adding a new key and providing/obtaining translations for it, follow the next step to update your local copy.
Updating translations
Only Open Privacy staff members can update translations.
In Lokalise, hit Download and make sure:
- Format is set to "Flutter (.arb)
- Output filename is set to
l10n/intl_%LANG_ISO%.%FORMAT%
- Empty translations is set to "Replace with base language"
- Order "Last Update"
Build, download and unzip the output, overwriting lib/l10n
. The next time Flwtch is built, Flutter will notice the changes and update app_localizations.dart
accordingly (thanks to generate:true
in pubspec.yaml
).
Adding a language
If a new language has been added to the Lokalise project, two additional manual steps need to be done:
- Create a new key called
localeXX
for the name of the language - Add it to the settings pane by updating
getLanguageFull()
inlib/views/globalsettingsview.dart
Then rebuild as normal.
Using a string
Any widget underneath the main MaterialApp should be able to:
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
and then use:
Text(AppLocalizations.of(context)!.stringIdentifer),
Configuration
With generate: true
in pubspec.yaml
, the Flutter build process checks l10n.yaml
for input/output filenames.