Skip to content

Commit

Permalink
Merge branch 'development' into 4002-tablepaginated-filter-by-user-ro…
Browse files Browse the repository at this point in the history
…le--admin-users-role
  • Loading branch information
yaguzmang authored Oct 18, 2024
2 parents fb6a24b + 9731795 commit 5f89412
Show file tree
Hide file tree
Showing 284 changed files with 18,806 additions and 16,843 deletions.
34 changes: 34 additions & 0 deletions .github/workflows/translations-download-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: New Crowdin translations PR

on:
workflow_dispatch:

permissions:
contents: write
pull-requests: write

jobs:
crowdin:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Synchronize with Crowdin
uses: crowdin/github-action@v2
with:
upload_sources: false
upload_translations: false
download_translations: true
# Export options
export_only_approved: true

localization_branch_name: i18n_crowdin_translations
create_pull_request: true
pull_request_title: "New Crowdin translations"
pull_request_body: "New Crowdin pull request with translations"
pull_request_base_branch_name: "development"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
23 changes: 23 additions & 0 deletions .github/workflows/translations-upload-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Upload translation sources

on:
push:
paths: ["src/i18n/resources/en/**/*.json", "!src/i18n/resources/en/panEuropean/**"]
branches: [development]

jobs:
crowdin-upload-sources:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Crowdin push
uses: crowdin/github-action@v2
with:
upload_sources: true
upload_translations: false
download_translations: false
env:
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
14 changes: 14 additions & 0 deletions crowdin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
"project_id_env": "CROWDIN_PROJECT_ID"
"api_token_env": "CROWDIN_PERSONAL_TOKEN"
"base_path": "."
"base_url": "https://api.crowdin.com"
"preserve_hierarchy": true

files:
[
{
"source": "/src/i18n/resources/en/**/*.json",
"translation": "/src/i18n/resources/%two_letters_code%/%original_file_name%",
"ignore": ["/src/i18n/resources/en/panEuropean/**"],
},
]
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
"run:prod": "run-s build start",
"run:prod:server": "node dist/server/start",
"start": "run-s migration-public:run run:prod:server",
"metacache:generate": "ts-node src/tools/generateMetaCache/",
"//test": "mochapack --webpack-config webpack.config.babel.test.js",
"test": "run-s test:integration",
"test:integration": "yarn jest --no-cache --detectOpenHandles --setupFiles dotenv/config",
Expand Down
4 changes: 3 additions & 1 deletion src/client/i18n.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ import { initReactI18next } from 'react-i18next'
import { createParams } from 'i18n/i18nFactory'
import i18n from 'i18next'

import { Lang } from 'meta/lang'

i18n
.use(initReactI18next) // passes i18n down to react-i18next
.init(createParams('en'))
.init(createParams(Lang.en))

export default i18n
58 changes: 29 additions & 29 deletions src/i18n/i18nFactory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,60 +3,60 @@ import { TFunction } from 'i18next'

import { Lang } from 'meta/lang'

import * as arTranslation from './resources/ar'
import * as enTranslation from './resources/en'
import * as esTranslation from './resources/es'
import * as frTranslation from './resources/fr'
import * as ruTranslation from './resources/ru'
import * as zhTranslation from './resources/zh'
import { arTranslation } from './resources/ar'
import { enTranslation } from './resources/en'
import { esTranslation } from './resources/es'
import { frTranslation } from './resources/fr'
import { ruTranslation } from './resources/ru'
import { zhTranslation } from './resources/zh'

// @ts-ignore
const createInstance = i18next.createInstance || i18next.default.createInstance

const translationsFiles: { [langCode: string]: any } = {
en: enTranslation.translation,
es: esTranslation.translation,
fr: frTranslation.translation,
ru: ruTranslation.translation,
ar: arTranslation.translation,
zh: zhTranslation.translation,
const translationsFiles = {
[Lang.en]: enTranslation,
[Lang.es]: esTranslation,
[Lang.fr]: frTranslation,
[Lang.ru]: ruTranslation,
[Lang.ar]: arTranslation,
[Lang.zh]: zhTranslation,
}

export const createParams = (lang: string) => ({
fallbackLng: 'en',
export const createParams = (lang: Lang) => ({
fallbackLng: Lang.en,
debug: false,

// react i18next special options (optional)
react: {
wait: false, // set to true if you like to wait for loaded in every translated hoc
nsMode: 'default', // set it to fallback to let passed namespaces to translated hoc act as fallbacks
nsMode: 'default' as 'default' | 'fallback', // set it to fallback to let passed namespaces to translated hoc act as fallbacks
},

lng: lang,

resources: {
en: {
translation: translationsFiles.en,
[Lang.en]: {
translation: translationsFiles[Lang.en],
},
es: {
translation: translationsFiles.es,
[Lang.es]: {
translation: translationsFiles[Lang.es],
},
fr: {
translation: translationsFiles.fr,
[Lang.fr]: {
translation: translationsFiles[Lang.fr],
},
ru: {
translation: translationsFiles.ru,
[Lang.ru]: {
translation: translationsFiles[Lang.ru],
},
ar: {
translation: translationsFiles.ar,
[Lang.ar]: {
translation: translationsFiles[Lang.ar],
},
zh: {
translation: translationsFiles.zh,
[Lang.zh]: {
translation: translationsFiles[Lang.zh],
},
},
})

export const createI18nPromise = (lang: any): Promise<{ language: Lang; t: TFunction }> =>
export const createI18nPromise = (lang: Lang): Promise<{ language: Lang; t: TFunction }> =>
new Promise((resolve, reject) =>
// @ts-ignore
// eslint-disable-next-line no-promise-executor-return
Expand Down
Loading

0 comments on commit 5f89412

Please sign in to comment.