diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml new file mode 100644 index 0000000000..bce85b59d9 --- /dev/null +++ b/.github/workflows/crowdin.yml @@ -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 }} diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 0000000000..bbe9f81bcb --- /dev/null +++ b/crowdin.yml @@ -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" : "", + } +] diff --git a/next-i18next.config.js b/next-i18next.config.js index 7ef0876147..e480663353 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -4,7 +4,38 @@ const path = require("path"); module.exports = { i18n: { 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"), }; diff --git a/public/static/locales/ro/common.json b/public/static/locales/ro/common.json index ce25a6d57f..0967ef424b 100644 --- a/public/static/locales/ro/common.json +++ b/public/static/locales/ro/common.json @@ -1,3 +1 @@ -{ - "new-event-type-btn": "Nou tip de eveniment" -} +{}