디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[개발일지] 임롬 인빅투스 개발일지 -64 조지아/메디아II

임페라토르롬갤로그로 이동합니다. 2024.02.05 02:28:36
조회 55 추천 1 댓글 0
														


[시리즈] 임페라토르 인빅투스 개발일지
· 임페라토르 인빅투스 개발일지 번역 모음



이번에는 곧 나오게 될 이베리아 미션 트리, 아트로파테네 미션 트리 재작업, 새로운 유산, 마지막으로 Raichuu가 번역 속도 향상을 위해 작성한 스크립트를 소개할 거임


우선 이베리아로 시작하겠음


(역주: 이 이베리아는 히스파니아라고도 불리는 현대 스페인과 포르투갈이 위치한 반도와는 이름만 같고 다른 지역이다

개발일지 한국어 번역 넘버링에는 헷갈리지 않도록 현대 명칭인 조지아라고 적었으니 참고)



이베리아



7cf3c028e2f206a26d81f6e34080776d53



1.6 업데이트부터는 코카서스 지역에서도 미션 트리를 사용할 수 있을 거임

그 중에서도 첫 번째로 완성된 "이베리아 왕들의 흥기"를 보여주겠음


이 미션 트리는 햇빛이 내려쬐는 히스파니아 반도가 아니라 산악 국가 이베리아와 그곳의 개혁 군주에 대해 다룸



7ff3c028e2f206a26d81f6e347817364c2



미션 트리의 14개 미션에는 이베리아의 불안정한 정치적 상황을 구현하고자 했던 바닐라의 이베리아 이벤트들을 충실하게 보충해줌


따로 해금해야 하는 미션들 대신 모든 통치자가 사용할 수 있는 공용 미션부터 살펴보겠음


왼쪽에는 같은 아르마지교 형제들을 희생시켜서 성장할 수 있는 연속적인 정복 미션이 있음

스크린샷에서 아르마지교 신앙을 공유하는 국가들을 확인할 수 있음


(역주: 중세 시대의 조지아 연대기Georgian Chronicles에 따르면 아르마지Armazi는 기독교화 이전 조지아인들의 최고신이었다고 한다)



7ef3c028e2f206a26d81f6e246807c6bba



첫 번째 미션에서 볼 수 있듯이 플레이어의 나라는 종교를 공유함에도 불구하고 적대적인 국가들에게 둘러싸여 있음

바로 흑해 연안의 비우호적인 공화국들, 서쪽에는 콜키스 왕국, 동쪽에는 사나운 알바니아 부족들을 말하는 거임

(역주: 여기에 언급되는 알바니아도 아드리아 해의 알바니아와는 이름만 같고 다른 지역이다)


모두가 아르마지 신을 숭배하지만 아직 정치적으로 통일되어 있지는 않음

남쪽에는 항상 거대한 괴물 아르메니아의 위협이 존재하고 있으며 이에 대한 미션도 있지만 먼저 동료 신자들을 많이 복속시켜야 할 거임


알바니아인들을 정복했다면 그들을 하나도 남김없이 전부 직접 지배할 것인지, 아니면 봉신으로 해방시킬 것인지 결정해야 함



79f3c028e2f206a26d81f6e64089736c95



이웃들과 전쟁을 하지 않을 때는 이 지역의 이름난 포도주를 생산할 시설을 건설할 수도 있음

(역주: 조지아는 고대부터 포도주가 유명했으며 지금도 많은 와인을 생산하고 있다)



78f3c028e2f206a26d81f6e74e837768a0



콜키스인들과 파시스(Phasis) 시민들을 그들의 항구 도시에서 쫒아내면, 전통적으로 산악 민족이었던 이베리아인들은 역사에 길이 남을 첫 번째 영해를 가지게 됨

이베리아인들은 마치 돌고래처럼 적당한 행운을 가지고 바다로 다이빙할 거임



7bf3c028e2f206a26d81f6e040877d68b7



미션 트리의 오른쪽 루트는 이베리아의 통치자가 파르나바즈 왕조를 세운 파르나바즈(Pharnavaz) 1세일 때만 사용할 수 있음


게임이 시작되고 2년 후 이베리아에 연속적인 바닐라 이벤트가 발생하여 (플레이어의 선택에 따라)파르나바즈가 정권을 장악하는 것으로 끝나게 됨


찬탈자의 찬탈을 허용하지 않을 수도 있고, 그렇게 해도 정복 미션은 사용할 수 있음

하지만 역사의 발자취를 따라 이 전설적인 군주가 아르마지스치헤(Armazistsikhe)에서 권력을 잡도록 한다면 플레이어는 이베리아 왕국을 영원히 바꾸게 될 거임


(역주: 당시 이베리아 왕국의 수도였던 아르마지스치헤는 "아르마지의 성"이라는 뜻이며 현대의 므츠헤타Mtskheta이다)



7af3c028e2f206a26d81f6e341827164fd



새로 왕위에 오른 자가 마땅히 가장 먼저 해야 할 일은 바로 현지의 지원을 강화하는 거임

따라서 파르나바즈는 그의 이름으로 통치할 권리를 가진 "에리스타비(eristavi)"라는 특별한 지방관직을 임명하게 됨

(역주: 에리스타비는 조지아의 봉건적 관직으로 보통 비잔티움 제국의 스트라테고스와 동일시되었다)



75f3c028e2f206a26d81f6e64f87766a7f



그 후 파르나바즈는 "고유 언어" 미션에서 조지아 문자를 창제하고(실제로 그가 만들었다는 전설이 있다), 공용어 정책을 실시함으로써 관료제를 개혁하게 됨


또한 플레이어는 수도에 방어 시설을 건설할 수도 있는데, 이게 바닐라 이베리아의 수도 개발 이벤트와 시너지를 내서 산악 요새를 공격하려는 침략자들에게 막강한 방어력을 맛보여줄 수 있음



74f3c028e2f206a26d81f6e342807565cc



만약 파르나바즈 1세가 죽기 전까지 그의 모든 업적을 완수했다면 보상으로 파르나바즈 왕조의 혈통을 받게 됨


파르나바즈 1세는 그의 치세 동안 언어와 문자를 정비했고, 이베리아를 안정시켰으며, 다음 500년 동안 이어질 왕조를 세웠음

이 혈통은 파르나바즈 1세의 타고난 정치적 재능을 반영한 거임


혈통 아이콘을 만들어 준 CrazyZombie에게 감사를 표하겠음


이제 OmegaCorps의 파트로 넘어감



아트로파테네



지난 1.5 업데이트의 앙상하지만 많은 정복, 종교, 기타 등등 미션이 있는 아트로파테네 미션 트리를 기억할 거임

이제 더욱 새로워지고 개선된 (하지만 아직은 작업 중인)아트로파테네 미션 트리를 보여주겠음



7ced9e36ebd518986abce8954f887468a42f



지난 번의 아트로파테네 미션 트리를 되짚어봤는데, 작지만 중요한 것들이 빠져 있다는 생각이 들었음

다른 페르시아, 이란계 미션 트리와 차별화되는 뭔가 메디아스러운 요소가 정말로 필요하다고 느꼈음


기존의 아트로파테네 미션 트리는 너무 정복 위주였지만, 새로운 미션 트리는 정복을 해야만 하는 타당한 이유와 흥미로운 결과, 보상을 해당 지역에 제공하게 됨



前 아마르디오이족 문명화 미션



7cec9e36ebd518986abce895478277696059



이 미션은 히르카니아 지역의 문화적, 경제적 이익을 가져다줄 뿐만 아니라, 카스피 해에 인접한 개척되지 않은 온대 우림을 탐험할 수 있게 해줌

이에 대한 결정과 그 다음에 발생할 이벤트는 플레이어의 보물 창고에 넣을 수 있는 특별한 보물을 제공함



前 메디아 삼각형 미션



7cef9e36ebd518986abce8954482726a5c23



한때 메디아인들이 이란 고원 중부를 지배하고 있었을 때, 고대 도시 엑바타나(Ecbatana), 라이(Ray), 아스파다나(Aspadana), 카샨(Kashan)을 통해 권력을 행사했음

이제 이 도시들을 개발하여 하나의 도시권(metropolitan)으로 만들 수 있게 되었음


이 도시들과 관련된 눈여겨볼 결정도 있음

"붉은 도시" 미션을 완료하면 라이 북쪽의 청금석 산을 채굴하여 희귀한 무역품의 효과를 받을 수 있음


앞으로 아트로파테네의 정보가 더 공개될 거임



새로운 유산



유산 추가 계획은 계속 진행되고 있으며 이번에는 일리리아 국가들이 그 대상임

이 유산들에 익숙해지기를 바람



7cee9e36ebd518986abce895478873653a17



아브리아(Abria)



7ce99e36ebd518986abce8954482766dc8f9



다오르시아(Daorsia)



7ce89e36ebd518986abce89544807c645422



에피다우룸(Epidaurum)



7ceb9e36ebd518986abce895448373693f0c



델마티아(Delmatia)



7cea9e36ebd518986abce89544877464bf2e


리부르니아(Liburnia)



7ce59e36ebd518986abce895448577643d4a



히스트리아(Istria)



자동 번역 스크립트



(역주: 난 코딩은 문외한이니 이건 패스하겠음

인빅투스의 컨텐츠가 너무 많아 일일히 번역하는 건 불가능하다 보니 구글 번역기를 사용해서 자동 번역 스크립트를 만들었다고 함)


Hello, it’s me, Raichuu (aka Mikail in real life)! I am a Day 1 player of Imperator Rome and truly love the game. I am thankful for the additions from Invictus but the translation in German was really bad. That’s why I have joined the team and fixed the translation. Before, the German translation was outdated and no longer maintained - causing new content to show variable names in the game instead of actual words and sentences. There is so much added content in Invictus that it is not feasible to translate everything manually.

Therefore, I have created a little Python script which automatically translates the language text files of one source language (in this case, English) to another target language for all the available language text files. It is inspired by another git project called “ck3_ml_translator” which uses Google Translator to translate the text files. However, it is not so well written and runs very slow. The creator claims that it needs 2 seconds per translation.

Thus I have written my own approach which I already created for my previous work: An asynchronous translator using Google Translator with multiple proxies. It runs 25 times faster than the ck3_ml_translator and completes a full translation run in about 45 minutes. Asynchronous programming is very beneficial for Input/Output-bound code. In our case it means that we already send the next pending requests to Google to translate without waiting for a response first. This way, the waiting time between “I send the request” and “I have the response” is used efficiently to continue with the rest of the code in the meantime until a response is received. I have picked a few random samples out of the German translation and even for previously existing manual translations, the new translation sounds better, it is an overall great result. This would allow us to also use it for any other language that Invictus isn’t supporting yet or no longer have maintainers for. Let me know if there is enough interest! For now, it will only be used for the German translation for each update to ensure that everything is properly translated.

In the remaining part I will talk about the technical details for people who are interested. Firstly, the script accepts two run parameters: The source language (default English) and the target language (default German). Then the script looks for all the files in the source language’s folder including its subfolders and keeps track of them with an absolute path created by a relative pathing from the script’s file location to ensure consistency across different operating systems. After that, each file (YML format) is loaded and prettified to clean out the game-specific tags and placeholders, resulting in a final list of text with a corresponding list of tags. One difficulty here was that the YML files were not following the correct format, so I had to first manually rerun the script multiple times and fix the errors on loading each YML File until there were no more errors. This is hopefully only a one time issue, as long as everyone in the team follows the right format from now on.

Now that we have the list of text to translate in a clean state, we can create the pending future tasks for Python’s built-in module asyncio to work through the tasks in an asynchronous manner, see the translate_batch function below.



7ce49e36ebd518986abce8954188746d02



However, we have to fake our identity for Google to avoid being blocked after that many requests. That’s why we do not send individual requests but instead create client sessions. Each client session contains a randomly selected user agent which contains meta information to spoof our identity. On top of that, each client session runs through a randomly selected SOCKS5 proxy (I have 100 paid SOCKS5 proxies in a list). This way the client’s IP address is different, see the create_session function below.



7fed9e36ebd518986abce8954f84746e7d



To make sure that we regularly create a new client session, we have to chunk the future tasks in multiple sets of roughly the same size. In our case, every 15 tasks/requests, a new client session will be created for another user agent and proxy.

For the request I use the mobile website of Google Translator because it contains much less HTML content. Once the response has arrived, the response’s HTML content is parsed with BeautifulSoup4 and the translated text is extracted through a CSS selector. That translated text is then manipulated with the previously extracted game-specific tags for the final text, see the function translate_async below.



7fec9e36ebd518986abce89540887065db



Once all the translation tasks for a file are completed and the final text output is all together in one list, the data is saved in a proper YML format in the corresponding file associated with the right variable name for mapping the translation. If the file doesn’t exist yet, it will be automatically created. If it already exists, it will be overwritten. The filename is identical to the source’s language except that the suffix has changed to the target language, e.g. a file “xyz_english.yml” is changed to “xyz_german.yml” in the case of an English->German translation. Of course the root folder location would also be changed from english/ to german/.

This is essentially a really great and easy way to automatically translate and sync-up the translated content with the original content which is written in English - as long as Google Translator does a good job in translating of course :)




-끝-




https://forum.paradoxplaza.com/forum/threads/mod-imperator-invictus.1473328/page-61#post-28740024



추천 비추천

1

고정닉 0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2860 설문 경제관념 부족해서 돈 막 쓸 것 같은 스타는? 운영자 24/05/13 - -
1320 공지 임롬 필수 모드 정리 임페라토르롬갤로그로 이동합니다. 24.04.02 138 1
1319 공지 임롬 DLC 소개 임페라토르롬갤로그로 이동합니다. 24.04.02 49 1
1011 공지 임페라토르 롬 한글패치 번역에 참가하는 법 [9] 임페라토르롬갤로그로 이동합니다. 23.05.01 417 1
711 공지 임페라토르 인빅투스 개발일지 번역 모음 임롬미니갤갤로그로 이동합니다. 22.06.04 1659 6
769 공지 임롬 공략글 모음집 [12] 팰퍼틴갤로그로 이동합니다. 22.08.15 5486 10
1351 일반 2주 정도 지났는데도 담당자가 반응이 없음 [3] 임페라토르롬갤로그로 이동합니다. 05.09 78 0
1350 일반 궁기병이랑 기병척후전이 로마상대 특효네 [1] 소형고닉갤로그로 이동합니다. 05.07 50 0
1349 일반 요즘 왜 일지 없지 [1] 팰퍼틴갤로그로 이동합니다. 05.06 58 0
1348 일반 바닐라 한패 사이트 담당자 죽었나? [2] 임페라토르롬갤로그로 이동합니다. 05.03 80 0
1347 일반 플레이어 해군하고 용병 해군을 합치는 게 된다고? [2] 임페라토르롬갤로그로 이동합니다. 04.30 82 0
1346 일반 용병 부대 해산 어떻게 해? [4] 자유민(112.187) 04.29 58 0
1345 일반 컴 사양 좀 봐줄수 있어 ? [4] 자유민(112.187) 04.29 46 0
1344 일반 종속국 흡수 어캐 하냐 [5] 자유민(112.187) 04.29 55 0
1343 일반 병력 수송 어캐함? [7] 자유민(112.187) 04.28 53 0
1342 일반 인빅투스 지명 번역 오류 있음 [3] 자유민(122.43) 04.28 69 0
1341 일반 임롬 디버그 모드 어케 켜지 [2] 자유민(14.42) 04.28 42 0
1340 개발일 임페라토르 롬 2.0.4 아우구스투스 패치 노트 [1] 임페라토르롬갤로그로 이동합니다. 04.26 166 3
1339 일반 베타 2.0.4 또 업뎃됐노 임페라토르롬갤로그로 이동합니다. 04.17 89 0
1338 일반 번역기 좀더 수정해봄 [3] 굉장히설렘덩크갤로그로 이동합니다. 04.17 96 3
1337 일반 왠만하면 용병 필요할 때만 고용하는게 좋음? [3] 슈터갤로그로 이동합니다. 04.16 71 0
1336 일반 인빅 번역중에 번역기가 이상해서 [7] 굉장히설렘덩크갤로그로 이동합니다. 04.14 173 8
1335 일반 gog구매는 에바지....? [1] 자유민(121.166) 04.14 63 0
1334 정보𒀭 베타 2.0.4 업데이트됨 임페라토르롬갤로그로 이동합니다. 04.13 96 3
1333 일반 공화정은 성능을 떠나서 팰퍼틴갤로그로 이동합니다. 04.12 70 0
1332 일반 이악물고 공화정에서 제정으로 바꿀 이유는 없긴함 임페라토르롬갤로그로 이동합니다. 04.12 60 0
1331 일반 공화정이 왕정보다 훨씬 안정적인듯 [3] 소형고닉갤로그로 이동합니다. 04.12 93 0
1330 일반 군단 배치에 측후면도 걍 깡 중보병 박으면 안됨? [4] 소형고닉갤로그로 이동합니다. 04.11 72 0
1329 역사𓂀 등자 왤케 늦게 쓰엿노. TXT [1] 텐구아레스갤로그로 이동합니다. 04.11 76 0
1328 역사𓂀 게르만 왕국 군대들이 자국에서 훨씬 많은 병력으로 동로마에 텐구아레스갤로그로 이동합니다. 04.11 48 0
1327 일반 브리튼섬 뭔가 존나쉽네 [1] 소형고닉갤로그로 이동합니다. 04.10 62 0
1326 일반 같은문화권 뭐가좋나? [5] 소형고닉갤로그로 이동합니다. 04.08 75 0
1325 일반 인빅투스팀에서 지지난패치에 AI가 속국 적극적으로 쓰게 바꿨는데 [3] 팰퍼틴갤로그로 이동합니다. 04.06 112 0
1324 일반 2.0.4 베타에서 정식 업뎃 예정이네 [2] 임페라토르롬갤로그로 이동합니다. 04.05 105 1
1323 역사𓂀 서로마가 아틸라 훈족 군대 이긴 카탈라우눔 전투. MP4 미노루갤로그로 이동합니다. 04.05 49 0
1322 일반 식민지 건설 위치 어떻게 바꾸지? [7] ㅇㅇ(211.255) 04.04 77 0
1321 일반 공지 업데이트함 [2] 임페라토르롬갤로그로 이동합니다. 04.02 66 1
1318 일반 인빅투스는 군단특성 안붙음? [3] 소형고닉갤로그로 이동합니다. 04.01 71 0
1317 일반 알비온 미션트리 나옴? [2] ㅇㅇ(1.239) 03.30 65 0
1316 일반 누가 인빅투스 한패 만들어서 올렸네 [5] 임페라토르롬갤로그로 이동합니다. 03.29 203 0
1315 일반 종속국한테 프로빈스 주는 기능 없나? [1] 자유민(1.241) 03.27 44 0
1314 일반 인빅투스랑 한패랑 잘 안붙음? [1] 소형고닉갤로그로 이동합니다. 03.27 93 0
1272 정보𒀭 임롬 유저 필독 사항 [8] 임페라토르롬갤로그로 이동합니다. 02.05 632 12
1313 일반 디지털디럭스업그레이드는 이제 안파는겨? [2] 자유민(106.241) 03.26 42 0
1311 일반 문화종교 달라도 가혹하지 않게 세금 군대 뜯으면 순응하는게 맞지않냐? [2] 소형고닉갤로그로 이동합니다. 03.25 61 0
1310 일반 셀레우코스 제국 컨텐츠 번역 다 했다 [2] 임페라토르롬갤로그로 이동합니다. 03.22 131 4
1309 일반 업뎃하고 테라인도미타 한국 플레이버팩 튕김 [2] Candia갤로그로 이동합니다. 03.21 70 0
1308 일반 인빅투스 러시아 맵확장 확정 [5] 팰퍼틴갤로그로 이동합니다. 03.20 159 0
1307 일반 이 사람처럼 나라색따라 창 색 바뀌게하려면 뭐해야됨 [2] Candia갤로그로 이동합니다. 03.19 66 0
1305 일반 인빅 끼니깐 튕기는데 사양 낮으면 원래 그럼? [1] ㅇㅇ(1.226) 03.18 67 0
1304 일반 마우리아 개종하는 거 본 사람 았나? 임페라토르롬갤로그로 이동합니다. 03.17 46 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2