From 94950b36f2dcea9d9c81bd6f0d0ab02c50fe40b6 Mon Sep 17 00:00:00 2001 From: Terry Yiu <963907+tyiu@users.noreply.github.com> Date: Thu, 2 Mar 2023 09:22:02 +1300 Subject: [PATCH] WIP translations CI --- .github/workflows/export-translations.yaml | 49 ++++++++++++++++++++++ .tx/config | 24 +++++++++++ 2 files changed, 73 insertions(+) create mode 100644 .github/workflows/export-translations.yaml create mode 100755 .tx/config diff --git a/.github/workflows/export-translations.yaml b/.github/workflows/export-translations.yaml new file mode 100644 index 00000000..9c0075a0 --- /dev/null +++ b/.github/workflows/export-translations.yaml @@ -0,0 +1,49 @@ +name: Export Source Translations + +on: + push: + branches: + - master + +jobs: + export-source-translations: + name: Update translations branch + runs-on: macos-12 + strategy: + matrix: + include: + - xcode: "14.2" + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Run export script + run: | + sh devtools/export-source-translation.sh + - name: Push source translations to Transifex + uses: transifex/cli-action@v2 + with: + token: ${{ secrets.TX_TOKEN }} + args: push --branch '' + - name: Remove extraneous /tmp/tx file from running transifex cli that breaks the next pull step + run: | + rm -rf /tmp/tx + - name: Pull translations from Transifex + uses: transifex/cli-action@v2 + with: + token: ${{ secrets.TX_TOKEN }} + args: pull --branch '' + - name: Commit translation changes + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: Update Translations 🤖 + branch: translations + create_branch: true + push_options: '--force' + - name: Create Pull Request + uses: repo-sync/pull-request@v2 + with: + source_branch: "translations" + destination_branch: "master" + pr_title: "Update Translations 🤖" + if: steps.auto-commit-action.outputs.changes_detected == 'true' + diff --git a/.tx/config b/.tx/config new file mode 100755 index 00000000..aa4c4d08 --- /dev/null +++ b/.tx/config @@ -0,0 +1,24 @@ +[main] +host = https://www.transifex.com +lang_map = aa_DJ: aa-DJ, af_ZA: af-ZA, am_ET: am-ET, ar_AA: ar-AA, ar_AE: ar-AE, ar_DZ: ar-DZ, ar_EG: ar-EG, ar_IQ: ar-IQ, ar_JO: ar-JO, ar_LB: ar-LB, ar_SA: ar-SA, ar_SD: ar-SD, ar_SY: ar-SY, as_IN: as-IN, ast_ES: ast-ES, az_AZ: az-AZ, az_IR: az-IR, be_BY: be-BY, bem_ZM: bem-ZM, bg_BG: bg-BG, bg_US: bg-US, bn_BD: bn-BD, bn_IN: bn-IN, bo_CN: bo-CN, bqi_IR: bqi-IR, br_FR: br-FR, bs_BA: bs-BA, bs_BA-SRP: bs-BA-SRP, ca_ES: ca-ES, cs_CZ: cs-CZ, cy_GB: cy-GB, da_DK: da-DK, de_AT: de-AT, de_CH: de-CH, de_DE: de-DE, dz_BT: dz-BT, el_CY: el-CY, el_DE: el-DE, el_GR: el-GR, en_AE: en-AE, en_AL: en-AL, en_AT: en-AT, en_AU: en-AU, en_BA: en-BA, en_BA-SRP: en-BA-SRP, en_BD: en-BD, en_BE: en-BE, en_BG: en-BG, en_BH: en-BH, en_BR: en-BR, en_CA: en-CA, en_CH: en-CH, en_CL: en-CL, en_CO: en-CO, en_CY: en-CY, en_CZ: en-CZ, en_DE: en-DE, en_DK: en-DK, en_EC: en-EC, en_EG: en-EG, en_ES: en-ES, en_FI: en-FI, en_FJ: en-FJ, en_FR: en-FR, en_GB: en-GB, en_GH: en-GH, en_GR: en-GR, en_HK: en-HK, en_HR: en-HR, en_HU: en-HU, en_IE: en-IE, en_IN: en-IN, en_IT: en-IT, en_JP: en-JP, en_KR: en-KR, en_KW: en-KW, en_LK: en-LK, en_MX: en-MX, en_MY: en-MY, en_NG: en-NG, en_NL: en-NL, en_NO: en-NO, en_NZ: en-NZ, en_PE: en-PE, en_PG: en-PG, en_PH: en-PH, en_PK: en-PK, en_PL: en-PL, en_PR: en-PR, en_PT: en-PT, en_QA: en-QA, en_RO: en-RO, en_RS: en-RS, en_SA: en-SA, en_SE: en-SE, en_SG: en-SG, en_SI: en-SI, en_SK: en-SK, en_TT: en-TT, en_UG: en-UG, en_ZA: en-ZA, en_ZM: en-ZM, en_ee: en-ee, en_lt: en-lt, en_lv: en-lv, es_419: es-419, es_AR: es-AR, es_BO: es-BO, es_CL: es-CL, es_CO: es-CO, es_CR: es-CR, es_CU: es-CU, es_DO: es-DO, es_EC: es-EC, es_ES: es-ES, es_GT: es-GT, es_HN: es-HN, es_MX: es-MX, es_NI: es-NI, es_PA: es-PA, es_PE: es-PE, es_PR: es-PR, es_PY: es-PY, es_SA: es-SA, es_SV: es-SV, es_US: es-US, es_UY: es-UY, es_VE: es-VE, et_EE: et-EE, eu_ES: eu-ES, fa_AF: fa-AF, fa_IR: fa-IR, ff_SN: ff-SN, fi_FI: fi-FI, fil_PH: fil-PH, fo_FO: fo-FO, fr_BE: fr-BE, fr_CA: fr-CA, fr_CH: fr-CH, fr_CI: fr-CI, fr_CM: fr-CM, fr_FR: fr-FR, fr_GA: fr-GA, fr_LU: fr-LU, fy_NL: fy-NL, ga_IE: ga-IE, gl_ES: gl-ES, gu_IN: gu-IN, gug_PY: gug-PY, he_IL: he-IL, hi_IN: hi-IN, hr_BA: hr-BA, hr_BA-SRP: hr-BA-SRP, hr_HR: hr-HR, ht_HT: ht-HT, hu_HU: hu-HU, hu_RO: hu-RO, hu_SK: hu-SK, hy_AM: hy-AM, hy_RU: hy-RU, hye_RU: hye-RU, id_ID: id-ID, is_IS: is-IS, it_CH: it-CH, it_IT: it-IT, ja_JP: ja-JP, ka_GE: ka-GE, kk_KZ: kk-KZ, km_KH: km-KH, kn_IN: kn-IN, ko_KR: ko-KR, ks_IN: ks-IN, ku_IQ: ku-IQ, lg_UG: lg-UG, lo_LA: lo-LA, loz_ZM: loz-ZM, lt_LT: lt-LT, lv_LV: lv-LV, mhr_RU: mhr-RU, mk_MK: mk-MK, ml_IN: ml-IN, mn_MN: mn-MN, mr_IN: mr-IN, ms_BN: ms-BN, ms_MY: ms-MY, mt_MT: mt-MT, my_MM: my-MM, nb_NO: nb-NO, ne_NP: ne-NP, nl_BE: nl-BE, nl_NL: nl-NL, nn_NO: nn-NO, no_NO: no-NO, or_IN: or-IN, pa_IN: pa-IN, pa_PK: pa-PK, pl_PL: pl-PL, ps_AF: ps-AF, pt_AO: pt-AO, pt_BR: pt-BR, pt_MZ: pt-MZ, pt_PT: pt-PT, qu_EC: qu-EC, ro_MD: ro-MD, ro_RO: ro-RO, ru_RU: ru-RU, ru_UA: ru-UA, ru_ee: ru-ee, ru_lt: ru-lt, ru_lv: ru-lv, si_LK: si-LK, sk_SK: sk-SK, sl_SI: sl-SI, sq_AL: sq-AL, sr_BA-SRP: sr-BA-SRP, sr_ME: sr-ME, sr_RS: sr-RS, st_ZA: st-ZA, sv_FI: sv-FI, sv_SE: sv-SE, sw_CD: sw-CD, sw_KE: sw-KE, sw_TZ: sw-TZ, sw_UG: sw-UG, ta_IN: ta-IN, ta_LK: ta-LK, te_IN: te-IN, tg_TJ: tg-TJ, th_TH: th-TH, tk_TM: tk-TM, tl_PH: tl-PH, tr_CY: tr-CY, tr_DE: tr-DE, tr_TR: tr-TR, uk_UA: uk-UA, ur_PK: ur-PK, uz_UZ: uz-UZ, vi_VN: vi-VN, wo_SN: wo-SN, yue_CN: yue-CN, zh_CN: zh-CN, zh_HK: zh-HK, zh_SG: zh-SG, zh_TW: zh-TW, zu_ZA: zu-ZA + +[o:damus:p:damus-ios-staging:r:infopliststrings] +file_filter = damus/.lproj/InfoPlist.strings +source_file = damus/en-US.xcloc/Source Contents/damus/en-US.lproj/InfoPlist.strings +type = STRINGS_UTF8 +minimum_perc = 0 +resource_name = damus..en-US.lproj/InfoPlist.strings (translations) + +[o:damus:p:damus-ios-staging:r:localizablestrings] +file_filter = damus/.lproj/Localizable.strings +source_file = damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.strings +type = STRINGS_UTF8 +minimum_perc = 0 +resource_name = damus..en-US.lproj/Localizable.strings (translations) + +[o:damus:p:damus-ios-staging:r:localizablestringsdict] +file_filter = damus/.lproj/Localizable.stringsdict +source_file = damus/en-US.xcloc/Source Contents/damus/en-US.lproj/Localizable.stringsdict +type = STRINGSDICT +minimum_perc = 0 +resource_name = damus..en-US.lproj/Localizable.stringsdict (translations)