Localization files are located in the lib/l10n directory.
The app uses ARB format for localization. If you wonder how to format key-values content inside ARB files, here is detailed explanation.
If you are making changes to the localization files, run the following command:
flutter pub run intl_utils:generate
or use VSCode/Intellij IDEA special plugin.
If you added a new language, make sure to add it to the lib/locale.dart.
Detailed documentation on intl_utils
here.
The original strings for translation are located in the android/app/src/main/res/values/strings.xml file. To translate, you need to create a directory with your localization code, for example: android/app/src/main/res/values-ru/strings.xml
. More about localization in Android https://developer.android.com/training/basics/supporting-devices/languages.
The original strings for translation are located in the linux/po/messages.pot file. To translate, you need to create a file with your localization code, for example: linux/po/ru.po
. Also add your language code to the linux/po/CMakeLists.txt file (translated_languages
section). More about GNU gettext
localization https://docs.weblate.org/en/latest/devel/gettext.html#starting-new-translation.
Service specific code is located in lib/core/model/tracking_service. Each new service should be in a separate directory.
To add a new service, examine the code structure of any existing plugin, for example, UPS lib/core/model/tracking_service/ups.
Start by looking at the open issues to contribute code.
Make sure to write your name and e-mail address in format Name <e-mail>
in the license declaration above every file you make changes to.
Repeat and rinse, if you send enough patches to demonstrate you have a good coding skills, you will be given commit access on the real repo, making you part of the development team.
Also, take a look at Coding Guidelines before making code changes.
Be sure to run build_runner
before creating your commit:
flutter pub run build_runner build --delete-conflicting-outputs
Detailed documentation on build_runner
here.
If you are making changes to the localization files, also read the Note for translators section.
Make sure that all existing and new tests are passing:
flutter test test
- Keep it snimple snupid: KISS
- No repeating yourself. Re-use your own code and that of others.
- If you want to help, triaging and keeping up with the issue and TODO list is great.
- Try to follow our coding style and formatting before submitting a patch.
- All merge requests should come from a feature branch created on your Git fork. Your code will be reviewed, and only merged to the master branch if it doesn't break the build.
- When you submit a merge request, try to explain what issue you're fixing, and what you're fixing in detail, so it's easier for us to read your patches.
- Well named methods and code re-usability is preferable to a lot of comments.