GHA for crowdin (WIP) (#731)
* feat: add crowdin and supported languages * fix: main branch name * feat: test crowdin integration
This commit is contained in:
parent
cb4a1e031e
commit
168db02e1f
4 changed files with 187 additions and 4 deletions
27
.github/workflows/crowdin.yml
vendored
Normal file
27
.github/workflows/crowdin.yml
vendored
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
name: Crowdin Action
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
# Testing
|
||||||
|
- feat/i18n-crowdin
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
synchronize-with-crowdin:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: crowdin action
|
||||||
|
uses: crowdin/github-action@1.4.0
|
||||||
|
with:
|
||||||
|
upload_translations: true
|
||||||
|
download_translations: true
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
|
||||||
|
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
|
127
crowdin.yml
Normal file
127
crowdin.yml
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
#
|
||||||
|
# Your Crowdin credentials
|
||||||
|
#
|
||||||
|
"project_id_env" : "CROWDIN_PROJECT_ID"
|
||||||
|
"api_token_env" : "CROWDIN_PERSONAL_TOKEN"
|
||||||
|
"base_path" : "."
|
||||||
|
"base_url" : "https://cal.crowdin.com"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Choose file structure in Crowdin
|
||||||
|
# e.g. true or false
|
||||||
|
#
|
||||||
|
"preserve_hierarchy": true
|
||||||
|
|
||||||
|
#
|
||||||
|
# Files configuration
|
||||||
|
#
|
||||||
|
files: [
|
||||||
|
{
|
||||||
|
#
|
||||||
|
# Source files filter
|
||||||
|
# e.g. "/resources/en/*.json"
|
||||||
|
#
|
||||||
|
"source" : "/public/static/locales/en/*.json",
|
||||||
|
|
||||||
|
#
|
||||||
|
# Where translations will be placed
|
||||||
|
# e.g. "/resources/%two_letters_code%/%original_file_name%"
|
||||||
|
#
|
||||||
|
"translation" : "/public/static/locales/%two_letters_code%/%original_file_name%",
|
||||||
|
|
||||||
|
#
|
||||||
|
# Files or directories for ignore
|
||||||
|
# e.g. ["/**/?.txt", "/**/[0-9].txt", "/**/*\?*.txt"]
|
||||||
|
#
|
||||||
|
#"ignore" : [],
|
||||||
|
|
||||||
|
#
|
||||||
|
# The dest allows you to specify a file name in Crowdin
|
||||||
|
# e.g. "/messages.json"
|
||||||
|
#
|
||||||
|
#"dest" : "",
|
||||||
|
|
||||||
|
#
|
||||||
|
# File type
|
||||||
|
# e.g. "json"
|
||||||
|
#
|
||||||
|
#"type" : "",
|
||||||
|
|
||||||
|
#
|
||||||
|
# The parameter "update_option" is optional. If it is not set, after the files update the translations for changed strings will be removed. Use to fix typos and for minor changes in the source strings
|
||||||
|
# e.g. "update_as_unapproved" or "update_without_changes"
|
||||||
|
#
|
||||||
|
#"update_option" : "",
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start block (for XML only)
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Defines whether to translate tags attributes.
|
||||||
|
# e.g. 0 or 1 (Default is 1)
|
||||||
|
#
|
||||||
|
# "translate_attributes" : 1,
|
||||||
|
|
||||||
|
#
|
||||||
|
# Defines whether to translate texts placed inside the tags.
|
||||||
|
# e.g. 0 or 1 (Default is 1)
|
||||||
|
#
|
||||||
|
# "translate_content" : 1,
|
||||||
|
|
||||||
|
#
|
||||||
|
# This is an array of strings, where each item is the XPaths to DOM element that should be imported
|
||||||
|
# e.g. ["/content/text", "/content/text[@value]"]
|
||||||
|
#
|
||||||
|
# "translatable_elements" : [],
|
||||||
|
|
||||||
|
#
|
||||||
|
# Defines whether to split long texts into smaller text segments
|
||||||
|
# e.g. 0 or 1 (Default is 1)
|
||||||
|
#
|
||||||
|
# "content_segmentation" : 1,
|
||||||
|
|
||||||
|
#
|
||||||
|
# End block (for XML only)
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start .properties block
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Defines whether single quote should be escaped by another single quote or backslash in exported translations
|
||||||
|
# e.g. 0 or 1 or 2 or 3 (Default is 3)
|
||||||
|
# 0 - do not escape single quote;
|
||||||
|
# 1 - escape single quote by another single quote;
|
||||||
|
# 2 - escape single quote by backslash;
|
||||||
|
# 3 - escape single quote by another single quote only in strings containing variables ( {0} ).
|
||||||
|
#
|
||||||
|
# "escape_quotes" : 3,
|
||||||
|
|
||||||
|
#
|
||||||
|
# Defines whether any special characters (=, :, ! and #) should be escaped by backslash in exported translations.
|
||||||
|
# e.g. 0 or 1 (Default is 0)
|
||||||
|
# 0 - do not escape special characters
|
||||||
|
# 1 - escape special characters by a backslash
|
||||||
|
#
|
||||||
|
# "escape_special_characters": 0
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# End .properties block
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Does the first line contain header?
|
||||||
|
# e.g. true or false
|
||||||
|
#
|
||||||
|
#"first_line_contains_header" : true,
|
||||||
|
|
||||||
|
#
|
||||||
|
# for spreadsheets
|
||||||
|
# e.g. "identifier,source_phrase,context,uk,ru,fr"
|
||||||
|
#
|
||||||
|
# "scheme" : "",
|
||||||
|
}
|
||||||
|
]
|
|
@ -4,7 +4,38 @@ const path = require("path");
|
||||||
module.exports = {
|
module.exports = {
|
||||||
i18n: {
|
i18n: {
|
||||||
defaultLocale: "en",
|
defaultLocale: "en",
|
||||||
locales: ["en", "ro"],
|
locales: [
|
||||||
|
"af",
|
||||||
|
"ar",
|
||||||
|
"ca",
|
||||||
|
"zh-CN",
|
||||||
|
"zh-TW",
|
||||||
|
"cs",
|
||||||
|
"da",
|
||||||
|
"nl",
|
||||||
|
"en",
|
||||||
|
"fi",
|
||||||
|
"fr",
|
||||||
|
"de",
|
||||||
|
"el",
|
||||||
|
"he",
|
||||||
|
"hu",
|
||||||
|
"it",
|
||||||
|
"ja",
|
||||||
|
"ko",
|
||||||
|
"no",
|
||||||
|
"pl",
|
||||||
|
"pt",
|
||||||
|
"pt-BR",
|
||||||
|
"ro",
|
||||||
|
"ru",
|
||||||
|
"sr-Cyrl",
|
||||||
|
"es",
|
||||||
|
"sv",
|
||||||
|
"tr",
|
||||||
|
"uk",
|
||||||
|
"vi",
|
||||||
|
],
|
||||||
},
|
},
|
||||||
localePath: path.resolve("./public/static/locales"),
|
localePath: path.resolve("./public/static/locales"),
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,3 +1 @@
|
||||||
{
|
{}
|
||||||
"new-event-type-btn": "Nou tip de eveniment"
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue