Skip to content
nuthrash edited this page Jun 28, 2019 · 2 revisions

MINAX stands for Minax Is Not A Xlator, this naming style comes from GNU. Currently, Minax project contains some sub-projects, one of them is the MinaxWebTranslator which indeed is not a Translator App, it just a agent and mapping text-replacer for remote web translator or translation services.

Minax.Shared

Minax.Shared is a common/shared functionality library for Minax project

Minax Web Translator

Contains three sub-projects

  1. MinaxWebTranslator.Desktop - Windows Desktop version using WPF framework
  2. MinaxWebTranslator - Mobile version using Xamarin.Forms framework
  3. MinaxWebTranslator.Android - The Android wrapper project for MinaxWebTranslator

This App is absolutely not MVVM architecture. Maybe message-based MVC(?) or code-behind(?), I am not sure.
The `MessageHub` is responsible for broadcast messages, and the MainWindow or MainPage is the main controller to send most of messages.

MinaxWebTranslator.Desktop

  • Memo
    1. Many ICommands, Styles, or Binding may be failed when using MahApps, AvalonDock, or other libraries. Therefore it cannot adopt MVVM architecture.
    2. The FileHelper library provide SmartDetect class on .Net Framework, but it won't work on .Net Core, .Net Standard, or Xamarin.Forms.
    3. When use preview version .Net Core 3.0 WPF support, MainWindow would throw exceptions from some Control with "cannot find 複製" messages. It seems that when the App runs on my Chinese Windows PC, some Chinese text are missing, result in the crash. Maybe it would be fixed when final release of .Net Core 3.0.

MinaxWebTranslator

  • Memo
    1. In Xamarin.Forms 4.0, it still lacks many necessary features, such as CheckBox (will come with 4.1.x), input dialog, progress dialog, custom dialog, etc.. So, you shall find extra nuget libraries or source code to meet requirements.
    2. Many extra libraries would ask you add extra code to initial them in Android/iOS/UWP constructors, otherwise them won't work. Maybe you should survey more detail about how to use a library before use it.

MinaxWebTranslator.Android

  • Memo
    1. The OnBackPressed() shall relay message to MinaxWebTranslator, otherwise only override the OnBackPressed() method of MinaxWebTranslator is useless.
    2. Build and packaging for Release version shall not select "Use Shared Runtime", otherwise you shall ask user to install corresponding Xamarin.Forms standalone libraries from Google Play (seems cannot find these packages now). That means the .apk would include Xamarin.Forms related runtime, with extra 1x MB.
Clone this wiki locally