2.9 KiB
Gopeed contributors guide
Firstly, thank you for your interest in contributing to Gopeed. This guide will help you better participate in the development of Gopeed.
Branch description
This project only has one main branch, namely the main branch. If you want to participate in the
development of Gopeed, please fork this project first, and then develop in your fork project. After
development is completed, submit a PR to this project and merge it into the main branch.
Local development
It is recommended to develop and debug through the web. First, start the backend service, and start
it by the command line go run cmd/api/main.go, the default port of the service is 9999, and then
start the front-end flutter project in debug mode to run.
Translation
Flutter translations are ARB files in ui/flutter/lib/l10n. Use app_en.arb as the source template,
then edit or add app_<locale>.arb (for example, app_de.arb or app_zh_TW.arb). Every locale must
contain the same message keys as the English template.
Translate message values only, and do not rename variables inside braces such as {count} and {name}.
Do not translate metadata keys prefixed with @. Submit only the ARB source files you changed; do not generate or commit
app_localizations*.dart. The pull-request CI automatically validates the catalogs, generates the
localization code, and checks its integration.
The following examples show both the ARB definition and the text users see after the app supplies values.
-
Insert a variable into a message
ARB definition:
"welcomeUser": "Hola, {name}"Rendered result: when
name = Ana, users see “Hola, Ana”. You may reorder the sentence, but keep{name}. -
Display different text for different quantities
ARB definition:
"fileCount": "{count, plural, =0{No hay archivos} =1{1 archivo} other{{count} archivos}}"Rendered results:
count = 0→ “No hay archivos”count = 1→ “1 archivo”count = 3→ “3 archivos”
=0,=1, andothermean zero, one, and every other quantity. Translate only the user-visible text inside each branch. -
Display different text for different values
ARB definition:
"taskState": "{state, select, running{En curso} paused{En pausa} other{Desconocido}}"Rendered results:
state = running→ “En curso”state = paused→ “En pausa”- Any other value → “Desconocido”
running,paused, andotherare values supplied by the app. Do not translate them; translate only the display text inside the following braces.
flutter development
Don't forget to rundart format ./ui/flutterbefore you commit to keep your code in standard dart format
Turn on build_runner watcher if you want to edit api/models:
flutter pub run build_runner watch