From 72c11a15c2139acfc35c2d4d0823376066260ab2 Mon Sep 17 00:00:00 2001 From: Willem Date: Wed, 10 Jul 2024 19:17:40 +0200 Subject: [PATCH] Added basic i18n support for eskimos. --- Makefile | 50 +--------------------------------- README.md | 1 + lib/make/{ => i18n}/mb_i18n.mk | 3 ++ lib/make/i18n/mb_i18n_BASIC.mk | 45 ++++++++++++++++++++++++++++++ lib/make/i18n/mb_i18n_iu.mk | 35 ++++++++++++++++++++++++ lib/make/i18n/mb_i18n_ja.mk | 45 ++++++++++++++++++++++++++++++ lib/make/mb_proj.mk | 5 ++-- lib/make/msxbuild.mk | 7 +++-- 8 files changed, 137 insertions(+), 54 deletions(-) rename lib/make/{ => i18n}/mb_i18n.mk (98%) create mode 100644 lib/make/i18n/mb_i18n_BASIC.mk create mode 100644 lib/make/i18n/mb_i18n_iu.mk create mode 100644 lib/make/i18n/mb_i18n_ja.mk diff --git a/Makefile b/Makefile index 03f9b18..ae84dc6 100644 --- a/Makefile +++ b/Makefile @@ -3,6 +3,7 @@ # # Configure make,project,msxbuild + PATH_BIN := bin PATH_SRC := src PATH_MSXBUILD ?= . @@ -19,52 +20,3 @@ $(call mb_make_call,mb_make_flow_0module,$(PATH_SRC)) $(call mb_make_call,mb_proj_flow_setup,$(PATH_BIN)) $(call mb_make_call,mb_flight_proj_flow_video,$(PATH_BIN)) -# Add japanese support (TODO move) -ifdef LANG_JP -MB_I18N_ASSERT_SUCCESS = アサート成功 -MB_I18N_AUTOEXEC_WRITE = 自動実行の書き込み -MB_I18N_CONV_UNIX2DOS = ディスクシステムの行末に変換 -MB_I18N_CONV_DOS2UNIX = メインフレームラインエンドに変換 -MB_I18N_PACKAGE_CREATE_ARCHIVE = ビルド配布アーカイブ -MB_I18N_MAKE_CHECK_ARG1 = 引数 一 がありません -MB_I18N_MAKE_CHECK_ARG2 = 引数 二 がありません -MB_I18N_MAKE_CHECK_ARG3 = 引数 三 がありません -MB_I18N_MAKE_CHECK_ARG4 = 引数 四 がありません -MB_I18N_MAKE_CHECK_ARG5 = 引数 五 がありません -MB_I18N_MSXHUB_FILE_FETCH = コンピューターハブファイルを取得する -MB_I18N_MSXROM_FILE_FETCH = 読み取り専用メモリファイルを取得する -MB_I18N_OPENMSX_STARTUP = オープンメッカシステムを開始 -MB_I18N_OS_CRAYON_TAG = ©Δ∞ 仙上主天 -MB_I18N_PROJ_STEP_BEFORE = フェーズ前 -MB_I18N_PROJ_STEP_AFTER = フェーズ後 -MB_I18N_PROJ_STEP_DONE = プライムパイターゲットの実行を終了しました -MB_I18N_PROJ_DIR_CREATE = フォルダーの作成 -MB_I18N_PROJ_DIR_DELETE = フォルダーの削除 -MB_I18N_SDCC_COMPILE = 標準マイクロコンパイラ -MB_I18N_SDCC_ARLIB = 標準マイクロビルドライブラリ -MB_I18N_SDCC_LINK = 標準マイクロリンクメッカ図書館 -MB_I18N_SDCC_OBJCOPY = 標準マイクロオブジェクトコピー -MB_I18N_PROJ_PHASEID_CLEAN = クリーン -MB_I18N_PROJ_PHASEDOC_CLEAN = プロジェクトのビルドフォルダーをクリーンアップします。 -MB_I18N_PROJ_PHASEID_INIT = 初期化する -MB_I18N_PROJ_PHASEDOC_INIT = モジュール出力フォルダーをセットアップして検証します。 -MB_I18N_PROJ_PHASEID_PROCESS = プロセス -MB_I18N_PROJ_PHASEDOC_PROCESS = コンパイル前にソースを処理します。 -MB_I18N_PROJ_PHASEID_COMPILE = コンパイル -MB_I18N_PROJ_PHASEDOC_COMPILE = すべてのプロジェクト ソースをコンパイルします。 -MB_I18N_PROJ_PHASEID_LINK = リンク -MB_I18N_PROJ_PHASEDOC_LINK = すべてのプロジェクト中間ファイルをリンクします。 -MB_I18N_PROJ_PHASEID_BUILD = 建てる -MB_I18N_PROJ_PHASEDOC_BUILD = すべてのプロジェクト成果物をビルドします。 -MB_I18N_PROJ_PHASEID_TEST = テスト -MB_I18N_PROJ_PHASEDOC_TEST = すべてのアサーション テストを実行します。 -MB_I18N_PROJ_PHASEID_PACKAGE = パッケージ -MB_I18N_PROJ_PHASEDOC_PACKAGE = プロジェクトのパッケージを作成します。 -MB_I18N_PROJ_PHASEID_PACKAGE_QA = パッケージの品質保証 -MB_I18N_PROJ_PHASEDOC_PACKAGE_QA = すべてのパッケージを実行します。プロジェクトの品質保証。 -MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY = パッケージのデプロイ -MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY = パッケージをデプロイします。 - -$(call mb_make_call,mb_proj_flow_setup_i18n) -endif - diff --git a/README.md b/README.md index de87a9d..835afc8 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ When you want to see whats happening do a debug run; ## Make4++ backlog issues * Add a few new define's to have official make documentation +* BUG: Unicode read+parse ok but function call fails on `include $(MB__BASEPATH)/lib/make/प्रणालीᐥᔆʸᔆᐪᓫᔿ/mb_doc.mk`. * Add function `call_real` which exits on undefined call argument * Add -e option to make internal echo command for escaped sequences * Add native OS functions for `os_copy,os_rmfile,rmdir,mkdir,touch,delfile,deldir` diff --git a/lib/make/mb_i18n.mk b/lib/make/i18n/mb_i18n.mk similarity index 98% rename from lib/make/mb_i18n.mk rename to lib/make/i18n/mb_i18n.mk index 2e376b2..dc69ed8 100644 --- a/lib/make/mb_i18n.mk +++ b/lib/make/i18n/mb_i18n.mk @@ -1,4 +1,7 @@ +MB_I18N ?= +$(call mb_make_call,mb_doc_variable,MB_I18N,"The language code to select the i18n pack.") + MB_I18N_ASSERT_SUCCESS ?= Assert successfull $(call mb_make_call,mb_doc_variable_i18n,MB_I18N_ASSERT_SUCCESS,"Message for when assertion test is successfull.") diff --git a/lib/make/i18n/mb_i18n_BASIC.mk b/lib/make/i18n/mb_i18n_BASIC.mk new file mode 100644 index 0000000..f9dd460 --- /dev/null +++ b/lib/make/i18n/mb_i18n_BASIC.mk @@ -0,0 +1,45 @@ + +MB_I18N_ASSERT_SUCCESS = ASSERT OK: +MB_I18N_AUTOEXEC_WRITE = WRITE BOOT: +MB_I18N_CONV_UNIX2DOS = CONV UNIX2DOS: +MB_I18N_CONV_DOS2UNIX = CONV DOS2UNIX: +MB_I18N_PACKAGE_CREATE_ARCHIVE = BUILD ARCHIVE: +MB_I18N_MAKE_CHECK_ARG1 = ARG 1 FAIL +MB_I18N_MAKE_CHECK_ARG2 = ARG 2 FAIL +MB_I18N_MAKE_CHECK_ARG3 = ARG 3 FAIL +MB_I18N_MAKE_CHECK_ARG4 = ARG 4 FAIL +MB_I18N_MAKE_CHECK_ARG5 = ARG 5 FAIL +MB_I18N_MSXHUB_FILE_FETCH = FETCH MSXHUB: +MB_I18N_MSXROM_FILE_FETCH = FETCH MSXROM: +MB_I18N_OPENMSX_STARTUP = BOOT OPENMSX: +MB_I18N_OS_CRAYON_TAG = MSX⁴ +MB_I18N_PROJ_STEP_BEFORE = BEFORE $(MB_MAKE_HASH)$(MB_MAKE_HASH) +MB_I18N_PROJ_STEP_AFTER = AFTER $(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH)$(MB_MAKE_HASH) +MB_I18N_PROJ_STEP_DONE = BASIC RUN COMPLEET: +MB_I18N_PROJ_DIR_CREATE = FOLDER CREATE: +MB_I18N_PROJ_DIR_DELETE = FOLDER DELETE: +MB_I18N_SDCC_COMPILE = SDCC COMPILE: +MB_I18N_SDCC_ARLIB = SDCC ARLIB: +MB_I18N_SDCC_LINK = SDCC LINK: +MB_I18N_SDCC_OBJCOPY = SDCC OBJCOPY: +MB_I18N_PROJ_PHASEID_CLEAN = CLEAN +MB_I18N_PROJ_PHASEDOC_CLEAN = DELETE STUFF +MB_I18N_PROJ_PHASEID_INIT = INIT +MB_I18N_PROJ_PHASEDOC_INIT = INIT CAKE +MB_I18N_PROJ_PHASEID_PROCESS = PROCESS +MB_I18N_PROJ_PHASEDOC_PROCESS = PROCESS FOOD +MB_I18N_PROJ_PHASEID_COMPILE = COMPILE +MB_I18N_PROJ_PHASEDOC_COMPILE = COMPILE FOOD +MB_I18N_PROJ_PHASEID_LINK = LINK +MB_I18N_PROJ_PHASEDOC_LINK = LINK FOOD CHAIN +MB_I18N_PROJ_PHASEID_BUILD = BUILD +MB_I18N_PROJ_PHASEDOC_BUILD = BUILD LEGO +MB_I18N_PROJ_PHASEID_TEST = TEST +MB_I18N_PROJ_PHASEDOC_TEST = TEST LEGO +MB_I18N_PROJ_PHASEID_PACKAGE = PACKAGE +MB_I18N_PROJ_PHASEDOC_PACKAGE = PACKAGE LEGO +MB_I18N_PROJ_PHASEID_PACKAGE_QA = PACKAGE_QA +MB_I18N_PROJ_PHASEDOC_PACKAGE_QA = PACKAGE BURN LEGO +MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY = PACKAGE_DEPLOY +MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY = PACKAGE DEPLOY LEGO + diff --git a/lib/make/i18n/mb_i18n_iu.mk b/lib/make/i18n/mb_i18n_iu.mk new file mode 100644 index 0000000..0ca6bab --- /dev/null +++ b/lib/make/i18n/mb_i18n_iu.mk @@ -0,0 +1,35 @@ + +MB_I18N_ASSERT_SUCCESS = ᑲᔪᓯᓂᖃᑦᑎᐊᕐᓂᖅ +MB_I18N_AUTOEXEC_WRITE = ᑎᑎᕋᑲᐅᑎᒋᓂᖅ ᑲᒫᓗᖕᒥᒃ +MB_I18N_CONV_UNIX2DOS = ᐅᐊᔭᐅᑉ ᐃᓱᐊᓄᐊᕐᓗᒍ +MB_I18N_CONV_DOS2UNIX = ᑐᑭᓕᐊᖓᔪᓐᓃᕐᓗᓂ +MB_I18N_PACKAGE_CREATE_ARCHIVE = ᓴᓇᓗᑎᒃ ᑐᖅᑯᐃᕕᒃᓴᓂᑦ +MB_I18N_MAKE_CHECK_ARG1 = ᐊᐃᕙᔾᔪᑎ ᐊᑕᐅᓯᖅ ᐊᔪᖅᑐᖅ +MB_I18N_MAKE_CHECK_ARG2 = ᐊᐃᕙᔾᔪᑎ ᒪᕐᕉᒃ ᐊᔪᖅᑑᒃ +MB_I18N_MAKE_CHECK_ARG3 = ᐊᐃᕙᐅᑎ ᐱᖓᓱᑦ ᐊᔪᖅᑐᑦ +MB_I18N_MAKE_CHECK_ARG4 = ᐊᐃᕙᓂᖅ ᓯᑕᒪᑦ ᑲᔪᓯᓐᓂᖏᑦᑐᖅ +MB_I18N_MAKE_CHECK_ARG5 = ᐊᕐᓴᖅ ᐊᒃᓴᓗᐊᖓ ᐊᔪᓕᖅᑐᖅ +MB_I18N_MSXHUB_FILE_FETCH = ᖃᕆᑕᐅᔭᕐᒥ ᒥᓇᕆᓗᒍ +MB_I18N_MSXROM_FILE_FETCH = ᒥᓇᕆᓗᒍ ᖃᕆᑕᐅᔭᖅ ᐃᖅᑲᐅᒪᔾᔪᑎ +MB_I18N_OPENMSX_STARTUP = ᑲᖏᖅᑐᖅ ᖃᕆᑕᐅᔭᖅ +MB_I18N_OS_CRAYON_TAG = ꜊꜊꜊⋇꜏꜏꜏ +MB_I18N_PROJ_STEP_BEFORE = ᓯᕗᓂᐊᓂ +MB_I18N_PROJ_STEP_AFTER = ᑭᖑᓂᖓᓂ +MB_I18N_PROJ_STEP_DONE = ᐱᓕᕆᐊᖅ ᐱᐊᓂᒃᑕᐅᔪᖅ +MB_I18N_PROJ_DIR_CREATE = ᑐᖅᑯᐃᕝᕕᓕᐅᕐᓂᖅ +MB_I18N_PROJ_DIR_DELETE = ᑐᖅᑯᖅᓯᓯᒪᕝᕕᖓ ᐲᔭᖅᑕᐅᓗᓂ +MB_I18N_SDCC_COMPILE = ᖃᕆᑕᐅᔭᕋᓛᖅᓄᐊᑦᓯᓂᖅ +MB_I18N_SDCC_ARLIB = ᖃᕆᑕᐅᔭᕋᓛᖅᑐᖅᑯᖅᑕᐅᓯᒪᔪᑦ +MB_I18N_SDCC_LINK = ᖃᕆᑕᐅᔭᕋᓛᖅᐊᑦᑕᑕᕐᕕᒃᓴ +MB_I18N_SDCC_OBJCOPY = ᖃᕆᑕᐅᔭᕋᓛᖅᐱᖁᑎᐅᑉ ᐊᔾᔨᖓ +MB_I18N_PROJ_PHASEID_CLEAN = ᓴᓗᒪᓗᓂ +MB_I18N_PROJ_PHASEID_INIT = ᐃᑎᖅᓴᖅ +MB_I18N_PROJ_PHASEID_PROCESS = ᐱᓕᕆᔾᔪᓯᖅ +MB_I18N_PROJ_PHASEID_COMPILE = ᓄᐊᑦᓯᓂᖅ +MB_I18N_PROJ_PHASEID_LINK = ᐊᑦᑕᑕᕐᕕᒃᓴ +MB_I18N_PROJ_PHASEID_BUILD = ᓴᓇᓂᖅ +MB_I18N_PROJ_PHASEID_TEST = ᖃᐅᔨᓴᕈᑎ +MB_I18N_PROJ_PHASEID_PACKAGE = ᐴᖅᑲᖅᓯᒪᔪᑦ +MB_I18N_PROJ_PHASEID_PACKAGE_QA = ᐴᖅᑲᖅᓯᒪᔪᑦ−ᖃᖅ +MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY = ᐴᖅᑲᖅᓯᒪᔪᑦ−ᐃᓕᔭᐅᔪᑦ + diff --git a/lib/make/i18n/mb_i18n_ja.mk b/lib/make/i18n/mb_i18n_ja.mk new file mode 100644 index 0000000..17f0d32 --- /dev/null +++ b/lib/make/i18n/mb_i18n_ja.mk @@ -0,0 +1,45 @@ + +MB_I18N_ASSERT_SUCCESS = アサート成功 +MB_I18N_AUTOEXEC_WRITE = 自動実行の書き込み +MB_I18N_CONV_UNIX2DOS = ディスクシステムの行末に変換 +MB_I18N_CONV_DOS2UNIX = メインフレームラインエンドに変換 +MB_I18N_PACKAGE_CREATE_ARCHIVE = ビルド配布アーカイブ +MB_I18N_MAKE_CHECK_ARG1 = 引数 一 がありません +MB_I18N_MAKE_CHECK_ARG2 = 引数 二 がありません +MB_I18N_MAKE_CHECK_ARG3 = 引数 三 がありません +MB_I18N_MAKE_CHECK_ARG4 = 引数 四 がありません +MB_I18N_MAKE_CHECK_ARG5 = 引数 五 がありません +MB_I18N_MSXHUB_FILE_FETCH = コンピューターハブファイルを取得する +MB_I18N_MSXROM_FILE_FETCH = 読み取り専用メモリファイルを取得する +MB_I18N_OPENMSX_STARTUP = オープンメッカシステムを開始 +MB_I18N_OS_CRAYON_TAG = ©Δ∞ 仙上主天 +MB_I18N_PROJ_STEP_BEFORE = フェーズ前 +MB_I18N_PROJ_STEP_AFTER = フェーズ後 +MB_I18N_PROJ_STEP_DONE = プライムパイターゲットの実行を終了しました +MB_I18N_PROJ_DIR_CREATE = フォルダーの作成 +MB_I18N_PROJ_DIR_DELETE = フォルダーの削除 +MB_I18N_SDCC_COMPILE = 標準マイクロコンパイラ +MB_I18N_SDCC_ARLIB = 標準マイクロビルドライブラリ +MB_I18N_SDCC_LINK = 標準マイクロリンクメッカ図書館 +MB_I18N_SDCC_OBJCOPY = 標準マイクロオブジェクトコピー +MB_I18N_PROJ_PHASEID_CLEAN = クリーン +MB_I18N_PROJ_PHASEDOC_CLEAN = プロジェクトのビルドフォルダーをクリーンアップします。 +MB_I18N_PROJ_PHASEID_INIT = 初期化する +MB_I18N_PROJ_PHASEDOC_INIT = モジュール出力フォルダーをセットアップして検証します。 +MB_I18N_PROJ_PHASEID_PROCESS = プロセス +MB_I18N_PROJ_PHASEDOC_PROCESS = コンパイル前にソースを処理します。 +MB_I18N_PROJ_PHASEID_COMPILE = コンパイル +MB_I18N_PROJ_PHASEDOC_COMPILE = すべてのプロジェクト ソースをコンパイルします。 +MB_I18N_PROJ_PHASEID_LINK = リンク +MB_I18N_PROJ_PHASEDOC_LINK = すべてのプロジェクト中間ファイルをリンクします。 +MB_I18N_PROJ_PHASEID_BUILD = 建てる +MB_I18N_PROJ_PHASEDOC_BUILD = すべてのプロジェクト成果物をビルドします。 +MB_I18N_PROJ_PHASEID_TEST = テスト +MB_I18N_PROJ_PHASEDOC_TEST = すべてのアサーション テストを実行します。 +MB_I18N_PROJ_PHASEID_PACKAGE = パッケージ +MB_I18N_PROJ_PHASEDOC_PACKAGE = プロジェクトのパッケージを作成します。 +MB_I18N_PROJ_PHASEID_PACKAGE_QA = パッケージの品質保証 +MB_I18N_PROJ_PHASEDOC_PACKAGE_QA = すべてのパッケージを実行します。プロジェクトの品質保証。 +MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY = パッケージのデプロイ +MB_I18N_PROJ_PHASEDOC_PACKAGE_DEPLOY = パッケージをデプロイします。 + diff --git a/lib/make/mb_proj.mk b/lib/make/mb_proj.mk index 7f78711..bc8a536 100644 --- a/lib/make/mb_proj.mk +++ b/lib/make/mb_proj.mk @@ -214,6 +214,7 @@ endef define mb_proj_flow_setup $(MB__    )$(call mb_make_call,mb_make_check_arg1,mb_proj_flow_setup,$(1)) $(MB__    )$(eval $(call mb_make_call,__mb_proj_flow_setup,$(1))) +$(MB__    )$(if $(MB_I18N),$(if $(filter off,$(MB_I18N)),,$(call mb_make_call,_mb_proj_flow_setup_i18n))) endef $(call mb_make_call,mb_doc_function_flow,mb_proj_flow_setup,"Prints flow of abstract project build cycle.","") @@ -273,7 +274,7 @@ $(MB__    )$$(call mb_make_call,mb_make_flag_phony,@$$(MB_I18N_PROJ_PHAS .RECIPEPREFIX := $(MB__RECIPEPREFIX) endef -define mb_proj_flow_setup_i18n +define _mb_proj_flow_setup_i18n $(MB__    )$(call mb_make_call,mb_make_check_variable,MB_I18N_PROJ_PHASEID_CLEAN) $(MB__    )$(call mb_make_call,mb_make_check_variable,MB_I18N_PROJ_PHASEID_INIT) $(MB__    )$(call mb_make_call,mb_make_check_variable,MB_I18N_PROJ_PHASEID_PROCESS) @@ -286,5 +287,5 @@ $(MB__    )$(call mb_make_call,mb_make_check_variable,MB_I18N_PROJ_PHASE $(MB__    )$(call mb_make_call,mb_make_check_variable,MB_I18N_PROJ_PHASEID_PACKAGE_DEPLOY) $(MB__    )$(eval $(call mb_make_call,__mb_proj_flow_setup_i18n)) endef -$(call mb_make_call,mb_doc_function_flow,mb_proj_flow_setup_i18n,"Prints flow for i18n wrapper of project build cycle.") +#$(call mb_make_call,mb_doc_function_flow,_mb_proj_flow_setup_i18n,"Prints flow for i18n wrapper of project build cycle.") diff --git a/lib/make/msxbuild.mk b/lib/make/msxbuild.mk index 3c236eb..d5dd805 100644 --- a/lib/make/msxbuild.mk +++ b/lib/make/msxbuild.mk @@ -8,8 +8,6 @@ MB__RECIPEPREFIX := $(.RECIPEPREFIX) MB__BASEPATH := $(dir $(lastword $(MAKEFILE_LIST)))../.. MB__BASEPATH_REAL := $(if $(realpath $(MB__BASEPATH)),$(realpath $(MB__BASEPATH)),$(MB__BASEPATH)) -# BUG1 Unicode bug in make, read+parse ok but function call fails. -#include $(MB__BASEPATH)/lib/make/प्रणालीᐥᔆʸᔆᐪᓫᔿ/mb_doc.mk include $(MB__BASEPATH)/lib/make/प्रणाली/mb_doc.mk include $(MB__BASEPATH)/lib/make/प्रणाली/mb_make_call.mk @@ -28,7 +26,10 @@ include $(MB__BASEPATH)/lib/make/mb_flight.mk include $(MB__BASEPATH)/lib/make/mb_assert.mk include $(MB__BASEPATH)/lib/make/mb_tool.mk include $(MB__BASEPATH)/lib/make/mb_proj.mk -include $(MB__BASEPATH)/lib/make/mb_i18n.mk +include $(MB__BASEPATH)/lib/make/i18n/mb_i18n.mk +ifneq ("$(MB_I18N)", "off") +-include $(MB__BASEPATH)/lib/make/i18n/mb_i18n_$(MB_I18N).mk +endif $(call mb_make_call,mb_doc_variable_rock,MB__RECIPEPREFIX,"Recipe prefix to restore to after flow eval.")