diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index de99ad82a..dee997a09 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,6 +4,7 @@ image: eclipse-temurin:25 # all stages need to be defined here stages: + - translations - build - api - pages @@ -32,6 +33,9 @@ variables: build: stage: build + needs: + - job: translations + artifacts: true parallel: matrix: - MC_VER: [ @@ -102,3 +106,17 @@ pages: - public allow_failure: false extends: .build_java + +translations: + stage: translations + needs: [] + image: crowdin/cli:latest + script: + - if [ "$CI_COMMIT_BEFORE_SHA" = "0000000000000000000000000000000000000000" ] || git diff --name-only "$CI_COMMIT_BEFORE_SHA" "$CI_COMMIT_SHA" -- coreSubProjects/core/src/main/resources/assets/distanthorizons/lang | grep -q .; then crowdin upload sources; fi + - crowdin download --export-only-approved --skip-untranslated-files + - for f in coreSubProjects/core/src/main/resources/assets/distanthorizons/lang/*.json; do [ -e "$f" ] || continue; sed -i 's/\\\\n/\\n/g' "$f"; n="$(basename "$f" | tr '[:upper:]' '[:lower:]')"; [ "$(basename "$f")" = "$n" ] || mv "$f" "$(dirname "$f")/$n"; done + artifacts: + paths: + - coreSubProjects/core/src/main/resources/assets/distanthorizons/lang/** + expire_in: 1 day + when: always diff --git a/Readme.md b/Readme.md index 10bc40634..dd9b2a978 100644 --- a/Readme.md +++ b/Readme.md @@ -12,6 +12,11 @@ Below is a video demonstrating the system: ![Distant Horizons - Alpha 2.0](https://i.ytimg.com/vi/SxQdbtjGEsc/hqdefault.jpg) +## Translations + +[![Crowdin](https://badges.crowdin.net/distant-horizons/localized.svg)](https://crowdin.com/project/distant-horizons)\ +Crowdin Project: [Distant Horizons](https://crowdin.com/project/distant-horizons)\ +Guidelines: [translations.md](translations.md)
## Source Code Installation diff --git a/contributing.md b/contributing.md index 45e1b6118..69d0db944 100644 --- a/contributing.md +++ b/contributing.md @@ -4,7 +4,9 @@ Thanks for your interest in contributing to Distant Horizons! Check out the [Core Wiki](https://gitlab.com/jeseibel/distant-horizons-core/-/wikis/home) for a rough overview of Distant Horizon's project structure. +## Translations +See [translations.md](translations.md) for the Crowdin workflow. ## Submitting a merge request diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 000000000..83c9974e0 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,8 @@ +project_id_env: CROWDIN_PROJECT_ID +api_token_env: CROWDIN_PERSONAL_TOKEN +base_path: ./coreSubProjects/core/src/main/resources/assets/distanthorizons/lang +preserve_hierarchy: true +files: + - source: /en_us.json + translation: /%locale_with_underscore%.json + type: json diff --git a/translations.md b/translations.md new file mode 100644 index 000000000..2d0a9dd05 --- /dev/null +++ b/translations.md @@ -0,0 +1,16 @@ +Translations are managed via Crowdin: https://crowdin.com/project/distant-horizons + +## How to help: +1. Create a Crowdin account +2. Join the project +3. Translate strings from `en_us.json`. + +## Notes: +- Keys ending with `@tooltip` are tooltips. +- Keep formatting codes intact, IE: `ยง`, `%s`, `%d`, `%1$s`. +- For newlines, utilize **Shift + Enter** instead of `\n`. +- Do not edit non-English files in pull requests. + +## To pull translations into the repo +- Downlod the [Crowdin CLI](https://github.com/crowdin/crowdin-cli/releases) +- Run `crowdin download --export-only-approved --skip-untranslated-files` in the project root. \ No newline at end of file