intl_imports = ./node_modules/.bin/intl-imports.js transifex_utils = ./node_modules/.bin/transifex-utils.js i18n = ./src/i18n transifex_input = $(i18n)/transifex_input.json # This directory must match .babelrc . transifex_temp = ./temp/babel-plugin-formatjs NPM_TESTS=build i18n_extract lint test .PHONY: test test: $(addprefix test.npm.,$(NPM_TESTS)) ## validate ci suite .PHONY: test.npm.* test.npm.%: validate-no-uncommitted-package-lock-changes test -d node_modules || $(MAKE) requirements npm run $(*) .PHONY: requirements requirements: ## install ci requirements npm ci i18n.extract: # Pulling display strings from .jsx files into .json files... rm -rf $(transifex_temp) npm run-script i18n_extract i18n.concat: # Gathering JSON messages into one file... $(transifex_utils) $(transifex_temp) $(transifex_input) extract_translations: | requirements i18n.extract i18n.concat # Despite the name, we actually need this target to detect changes in the incoming translated message files as well. detect_changed_source_translations: # Checking for changed translations... git diff --exit-code $(i18n) pull_translations: rm -rf src/i18n/messages mkdir src/i18n/messages cd src/i18n/messages \ && atlas pull $(ATLAS_OPTIONS) \ translations/frontend-platform/src/i18n/messages:frontend-platform \ translations/paragon/src/i18n/messages:paragon \ translations/frontend-component-footer/src/i18n/messages:frontend-component-footer \ translations/frontend-component-header/src/i18n/messages:frontend-component-header \ translations/frontend-app-account/src/i18n/messages:frontend-app-account $(intl_imports) frontend-platform paragon frontend-component-header frontend-component-footer frontend-app-account # This target is used by Travis. validate-no-uncommitted-package-lock-changes: # Checking for package-lock.json changes... git diff --exit-code package-lock.json