This is the same solution as in BGQE 8.1. Well... almost the same. In BG1UB is used non trivial name of language folder - not just "polski" or "polish" but "tra/polish". Therefore I added new variable and changed slightly the TPA library.
The solution consists of three steps:
1/ add to TP2 in ALWAYSE section
// @@@ Support for polish translation @@@
//set the proper values of string variables
OUTER_SPRINT "Z!PL_TRA_Patch" "bg1ub/tra/polish"
OUTER_SPRINT "Z!Polish_Choosen" "tra/polish"
//main conversion code
INCLUDE ~%Z!PL_TRA_Patch%/BG1&BG2UniversalPolishFont.tpa~
//all TRAs declared in LANGUAGE must be reloaded
LOAD_TRA "bg1ub/%LANGUAGE%/setup.tra"
2/ library with main code, that convert TRAs to proper characters
ACTION_IF !("%Z!polish_signs%" STRING_EQUAL "%") AND ("%LANGUAGE%" STRING_COMPARE_CASE "%Z!Polish_Choosen%" = 0) THEN BEGIN //do code once if polish choosen
ACTION_IF FILE_EXISTS_IN_GAME ~AR0100.are~ AND FILE_CONTAINS_EVALUATED(~AR0100.are~ ~Ocellis~) //BG1 engine
THEN BEGIN
COPY ~%Z!PL_TRA_Patch%~ ~%Z!PL_TRA_Patch%~
PATCH_IF (~%SOURCE_EXT%~ STRING_EQUAL_CASE ~TRA~) AND FILE_CONTAINS_EVALUATED(~%Z!PL_TRA_Patch%/%SOURCE_FILE%~ ~BG2engine~) BEGIN //TRA are BG2 coded
REPLACE_TEXTUALLY CASE_SENSITIVE "ń" "ň"
REPLACE_TEXTUALLY CASE_SENSITIVE "ć" "ď"
REPLACE_TEXTUALLY CASE_SENSITIVE "ę" "đ"
REPLACE_TEXTUALLY CASE_SENSITIVE "ą" "î"
REPLACE_TEXTUALLY CASE_SENSITIVE "ł" "ń"
REPLACE_TEXTUALLY CASE_SENSITIVE "ś" "ô"
REPLACE_TEXTUALLY CASE_SENSITIVE "ź" "ő"
REPLACE_TEXTUALLY CASE_SENSITIVE "ż" "ö"
REPLACE_TEXTUALLY CASE_SENSITIVE "Ą" "ĺ"
REPLACE_TEXTUALLY CASE_SENSITIVE "Ć" "ć"
REPLACE_TEXTUALLY CASE_SENSITIVE "Ę" "ç"
REPLACE_TEXTUALLY CASE_SENSITIVE "Ł" "č"
REPLACE_TEXTUALLY CASE_SENSITIVE "Ń" "ę"
REPLACE_TEXTUALLY CASE_SENSITIVE "Ś" "ë"
REPLACE_TEXTUALLY CASE_SENSITIVE "Ó" "é"
REPLACE_TEXTUALLY CASE_SENSITIVE "Ź" "ě"
REPLACE_TEXTUALLY CASE_SENSITIVE "Ż" "í"
REPLACE_TEXTUALLY CASE_SENSITIVE "BG2engine" "BG1engine"
END
BUT_ONLY_IF_IT_CHANGES
END
ELSE BEGIN //other than BG1 engine
COPY ~%Z!PL_TRA_Patch%~ ~%Z!PL_TRA_Patch%~
PATCH_IF (~%SOURCE_EXT%~ STRING_EQUAL_CASE ~TRA~) AND FILE_CONTAINS_EVALUATED(~%Z!PL_TRA_Patch%/%SOURCE_FILE%~ ~BG1engine~) BEGIN //TRA are BG1 coded
REPLACE_TEXTUALLY CASE_SENSITIVE "í" "Ż"
REPLACE_TEXTUALLY CASE_SENSITIVE "ě" "Ź"
REPLACE_TEXTUALLY CASE_SENSITIVE "é" "Ó"
REPLACE_TEXTUALLY CASE_SENSITIVE "ë" "Ś"
REPLACE_TEXTUALLY CASE_SENSITIVE "ę" "Ń"
REPLACE_TEXTUALLY CASE_SENSITIVE "č" "Ł"
REPLACE_TEXTUALLY CASE_SENSITIVE "ç" "Ę"
REPLACE_TEXTUALLY CASE_SENSITIVE "ć" "Ć"
REPLACE_TEXTUALLY CASE_SENSITIVE "ĺ" "Ą"
REPLACE_TEXTUALLY CASE_SENSITIVE "ö" "ż"
REPLACE_TEXTUALLY CASE_SENSITIVE "ő" "ź"
REPLACE_TEXTUALLY CASE_SENSITIVE "ô" "ś"
REPLACE_TEXTUALLY CASE_SENSITIVE "ń" "ł"
REPLACE_TEXTUALLY CASE_SENSITIVE "î" "ą"
REPLACE_TEXTUALLY CASE_SENSITIVE "đ" "ę"
REPLACE_TEXTUALLY CASE_SENSITIVE "ď" "ć"
REPLACE_TEXTUALLY CASE_SENSITIVE "ň" "ń"
REPLACE_TEXTUALLY CASE_SENSITIVE "BG1engine" "BG2engine"
END
BUT_ONLY_IF_IT_CHANGES
END
OUTER_SPRINT "Z!polish_signs" "%"
END
link to the TPA file:
https://dl.dropboxusercontent.com/u/18137743/BG1%26BG2UniversalPolishFont.tpa3/ all TRAs in Polish folder should be taged with string "/*BG2engine*/"