diff --git a/Contributing.md b/Contributing.md new file mode 100644 index 0000000..8eb0251 --- /dev/null +++ b/Contributing.md @@ -0,0 +1,50 @@ +## Multilingual Interface + +Ollama App does support multiple languages. Currently available are: + +- [x] English (fallback) +- [x] German +- [ ] Chinese (simplified) +- [ ] Italian +- [ ] Turkish + +The tick is set if the language is translated with 100%. This might not be up to date, check the project page to get the latest progress. + +In case the language you're looking for isn't listed, you can check if the development is in progress on the [Crowdin project page](https://crowdin.com/project/ollama-app). If not, you can always contribute. + +## Custom Builds + +Now it's going to get interesting. The app is built in a way so you can easily create custom builds. Currently, there are these values that can be customized: + +``` +// use host or not, if false dialog is shown +const useHost = false; +// host of ollama, must be accessible from the client, without trailing slash, will always be accepted as valid +const fixedHost = "http://example.com:11434"; +// use model or not, if false selector is shown +const useModel = false; +// model name as string, must be valid ollama model! +const fixedModel = "gemma"; +// recommended models, shown with as star in model selector +const recommendedModels = ["gemma", "llama3"]; +// allow opening of settings +const allowSettings = true; +// allow multiple chats +const allowMultipleChats = true; +``` + +They can be found at the top of `lib/main.dart`. `useHost` and `useModel` decide whether you want `fixedHost` and `fixedModel` to control anything. `fixedHost` and `fixedModel` decide about the value that has to be used. That can be practical in case you try to create an app specific to your instance. + +`recommendedModels` is a list of models that will be listed as recommended in the [Model Selector](#model-selector). They are more like personal preferences. If empty, no model will be preferred. + +`allowSettings` will disable the settings screen. But it will also disable the welcome dialog at first startup and the ability to rename chats. + +`allowMultipleChats` simply removes the `New Chat` option in the [Side Menu](#side-menu). And will load up the only available chat on app startup. + +### Actually Building + +But how do you create a custom build? + +First, follow [the Flutter installation guide](https://docs.flutter.dev/get-started/install) by selecting Android as the first app type. Then follow [these steps](https://docs.flutter.dev/deployment/android#signing-the-app) till you have your custom `key.properties`. Place it into the `android` folder at the root of the project. + +Make sure dart is available as a command or added as the default program for `.dart`. Then execute `scripts/build.dart` and wait for it to finish processing. Then go to `build/.output`. There you'll find everything you need, the normal Android app and the experimental Windows build. \ No newline at end of file