devunt / DFAssist

FFXIV Duty Finder & F.A.T.E. Assist
https://devunt.github.io/DFAssist
The Unlicense
65 stars 120 forks source link

English support #53

Closed Jaehyuk-Lee closed 7 years ago

Jaehyuk-Lee commented 7 years ago

이제 영어를 지원합니다.

en.json 에 번역된 부분이 문제가 될 수 있는데,

영어권 이용자들이 토벌전을 보스의 이름으로 부른다는 것은 알고 있지만, 일부는 어떤 명칭을 쓰는지 알지 못해 정확한 번역은 끝나지 않았습니다. 예시) 나이트 오브 라운드 - King Thordan으로 불리는지, Knights of the Round로 불리는지 모르겠습니다. (영어 클라이언트 명칭은 토벌전의 '장소'로 정해집니다.) 따라서, 앞으로 영어권 사용자의 번역 기여를 기다려야할 것 같습니다.

명칭이 너무 길어 오버레이에 표시된 내용만으로는 어떤 던전인지 정확히 파악할 수 없는 경우에는 임의로 줄였습니다. 예시) the Second Coil of Bahamut (Savage) - Turn 1 → Second Coil of Bahamut S - T1 (S - T1을 T1S로 바꾸는 것도 생각해볼만 하겠네요.) Alexander - The Fist of the Father (Savage) → A - Fist of the Father (Savage)

돌발임무는 번역하지 않았으며, 지역명만 번역했습니다. (홍련 지역은 아예 미지원) 모르는 임무 명칭은 바꾸지 못했습니다. (힐러를 안해서 힐러 초보자의 집 임무는 입장 시도 불가) 글로벌 서버 로드스톤에도 나오지 않습니다...

Jaehyuk-Lee commented 7 years ago

(영어 지원 추가 Commit 전의 Commit 내용) 3.5 업데이트 한국어 정식 명칭 적용

글로벌 서버 지원 개선

  1. 무작위 임무 정상 표시
  2. 매칭 확인 버튼 클릭 후, 오버레이 깜빡임을 멈춤
  3. 매칭 신청시 오버레이에 띄워주는 정보 개선 (매칭 신청 직후, 현재 매칭 중인 임무의 갯수를 보여줌.)

지금까지 사용해본 결과로는 한국서버 이용에는 문제가 없음.

devunt commented 7 years ago

음 글로벌 서버용 무작위 임무를 따로 지정하는건 최대한 피하고 싶은 생각입니다. ko.json에는 한국 서버용 무작위 임무 데이터를 담고, en.json에는 글로벌 서버용 무작위 임무 데이터를 담는게 좋지 않을까 하는 생각이네요

Jaehyuk-Lee commented 7 years ago

ko/en을 언어로 구분하려고 하시는거죠? 클라이언트 설정(한국서버/글로벌 서버)으로 구분하는게 아니라.. ko.json에 글로벌 서버 데이터 없이 한국어로 글로벌 서버 무작위 임무를 출력할 방법이 없지 않나요?(en.json도 불러와서 영어로 표기하든 해야할겁니다.) 최소한 더 복잡한 코드를 써야할텐데 제가 생각하고 있기로는 data.cs에서 프로그램 언어 설정에 따라 resources에 있는 json파일을 로드하기 때문에 en.json에 있는 내용을 한국어를 선택해서는 불러올 수 없습니다. 글로벌 서버를 이용하기 위해서는 그럼 영어만을 사용해야 하게 되는데요. 프로그램에 넣은 언어 설정이, 로드하는 json언어 파일을 자동으로 결정하게 해놨기 때문입니다.

한국어 선택 -> data.cs에서 settings.cs에 있는 lang 설정이 0임을 확인하고 ko.json파일을 이용해서 임무 정보를 불러옴. ko.json에 글로벌 서버 정보가 없다면, 한국어로는 글로벌 서버 정보를 출력할 수 없음.

lalafellsleep commented 7 years ago

그냥 임무 코드로 KO부터 찾고 없으면 EN으로 타기팅 하게 하면 되는 문제 아닌가여...

표기만 다르고 RAW코드는 똑같으니

lalafellsleep commented 7 years ago

레이드의 경우는 T1-13 (바하무트) / A1-12 (알렉산더) A1S-12S (영웅) / 오메가는 O1-4 O1S-O4S 로 간략 표기 하는 것 같은데욤

토벌전은 KOR, KOR EX(나/ 극나)외에는 Nidhogg Ex, Ravana Ex 처럼 보스 명칭 표기 하는거 맞습니다

devunt commented 7 years ago

음 과연 글섭을 하는 한국 유저들은 (불편하긴 하겠지만) 영어로 쓰면 되지 않겠냐... 하는 이야기였습니다. 어차피 인게임에서도 다 영어로 플레이할텐데 DFAssist 코드의 각종 예외와 복잡성을 감수하면서까지 한국어로 보여줘야 하는 이유를 저는 좀 찾기 힘드네요.

즉 언어를 한국어로 택하면 한섭 버전 기준으로 보여주고, 언어를 영어나 (추후에 추가될? 일본어나 뭐 다른 언어로 하면) 글섭 버전 기준으로 보여주고 (이건 할지 모르겠지만) 중국어로 하면 중섭 기준으로 보여주고

이렇게 하자는 이야기였습니다.

devunt commented 7 years ago

장점: 글섭에서 플레이하는 한국인들이 알림을 한국어로 볼 수 있다. 단점: DFAssist 코드가 각종 상황에 분기하느라 복잡해지고 무작위 임무의 경우 표기가 Roulette과 RouletteGS 등 두가지로 나뉨. 추후에 이렇게 버전 차이로 나뉘는게 또 생길 경우 Instance와 InstanceGS 등으로 추가적으로 나눠야 함.

대충 이 정도인 것 같은데 음 저는 장점보단 단점이 더 커 보이네요...

Jaehyuk-Lee commented 7 years ago

laiglinne-ff > Data.cs에서 임무코드를 넘겨받고 그 코드로 임무 정보를 찾는 과정에서 KO와 EN을 동시에 로드하지 않고 있습니다. 프로그램을 처음 실행할 때, 현재 설정된 언어를 매개변수로 Initializer(Resources.GameData_[언어이름])매서드를 실행하고 그 매서드에서 Areas, Instances, Roulettes, FATEs라는 이름을 가진 Dictionary를 생성합니다. 그렇게 생성된 Dictionary 변수들로부터 임무 정보를 찾는 방식으로 작동합니다. 즉, 처음 프로그램이 실행될 때, 현재 언어가 ko면, ko.json만을 참조하여 임무 정보를 Dictionary형식의 변수들에 저장을 하고, 더 이상 json 파일은 참조하지 않는다는 것입니다.

그냥 임무 코드로 KO부터 찾고 없으면 EN으로 타기팅 하게 하면 되는 문제 아닌가여...

에 대한 답변이었는데, 생각해보니, 무작위 임무만 따로 분리해서 ko.jsonen.json을 둘 다 참조하여, 한국 서버 데이터(한국어)와 글로벌 서버 데이터(영어)를 가져오는 방식으로 처리하면 되겠네요.

devunt > 바로 위에 인용구 아래 작성한 방식으로 해서, 글로벌 서버 무작위 임무만 영어로 표기하는 방법을 쓸 수 있겠습니다. 나중에 Instance도 분리해야 하는 상황이 오면 그 때는 아예 글로벌 서버는 한국어를 지원하지 않는 방식으로 하도록 하죠.

아니면 그냥 글로벌 서버 정보를 반영하지 않고 사용하도록 하면 되겠네요. 예를 들어, 글로벌 서버에서 50/60 매칭을 넣었어도 한국 서버 정보 그대로 50으로 출력하게. 어처피 다 알아볼테니까요 ㅋㅋ 피스트 무작위 매칭 정보만 넣어주면 되겠습니다. 아마 한국도 3.5부터 피스트가 무작위 매칭으로 들어갈 것 같네요. 신규 피스트 전장이 생긴다는데 그것 같습니다.

Jaehyuk-Lee commented 7 years ago

T1-T13, A1-A12 등의 명칭을 그대로 쓰는 것은 고려하지 않았습니다. 한국 서버에서도 '천동 영식 1'이라고 사람들끼리 많이 부르지만, 프로그램에서 쓰는 데이터는 그런 식으로 작성하고 있지 않기 때문에요. 최대한 줄임말보다는 기존 명칭을 그대로 쓰는데 집중했습니다. 어쩔 수 없이 길이가 길어서 오버레이에서 구분을 못할 정도일 때만 줄였죠. 비슷한 형식으로 보이도록, 축약할 때 'Turn'부분을 축약하고 'Alexander'부분을 축약해서 알아보는데 지장이 없도록 하긴 했습니다.

Jaehyuk-Lee commented 7 years ago
  1. 글로벌 서버 무작위 정보는 한국어를 선택해도 영어로 알맞은 정보를 출력 (network.analyser에서 한국 서버/Global Server 구분하는 매개변수를 넘겨줘야 함)
  2. 한국어를 선택했으면, 글로벌 서버에서도 한국 서버 기준 정보만 출력(무작 50/60 -> 무작 50, 무작 70 -> 무작 60) (한국 서버/Global Server 구분 필요 없음)

뭐가 나을지 알려주시면 그대로 하겠습니다.

devunt commented 7 years ago

음... 저는 RouletteGS를 포함해 예외적인 코드들이 최대한 없어졌으면 좋겠어서 될 수 있으면 2번을 택하고 싶습니다.

lalafellsleep commented 7 years ago

Dutylist 일본어 데이터 마이닝 해서 그거 기준으로 번역해서 한국어로 넣어놓는게 더 예외 처리 자체는 나을 듯... 공식에서 번역이 달라지면 그때 ko.json만 수정하면 되니까요

devunt commented 7 years ago

임무명의 경우 각 언어판의 instancecontent.exh 파일을 확인하시면 될 것 같습니다.

Jaehyuk-Lee commented 7 years ago

아 그거 긁어올 수 있는거였군요.. 다 수작업했었는데 음.. 그거 어디서 찾을 수 있는 파일인가요??

lalafellsleep commented 7 years ago

監獄廃墟 トトラクの千獄,169 地下霊殿 タムタラの墓所,164 封鎖坑道 カッパーベル銅山,161 天然要害 サスタシャ浸食洞,157 霧中行軍 オーラムヴェイル,172 名門屋敷 ハウケタ御用邸,166 魔獣領域 ハラタリ修練所,162 奪還支援 ブレイフロクスの野営地,158 遺跡探索 カルン埋没寺院,163 旅神聖域 ワンダラーパレス,159 城塞攻略 ストーンヴィジル,168 流砂迷宮 カッターズクライ,170 掃討作戦 ゼーメル要塞,171 邪教排撃 古城アムダプール,167 外郭攻略 カストルム・メリディアヌム,217 最終決戦 魔導城プラエトリウム,224 怪鳥巨塔 シリウス大灯台,160 騒乱坑道 カッパーベル銅山 (Hard),349 妖異屋敷 ハウケタ御用邸 (Hard),350 盟友支援 ブレイフロクスの野営地 (Hard),362 剣闘領域 ハラタリ修練所 (Hard),360 腐敗遺跡 古アムダプール市街,363 財宝伝説 ハルブレーカー・アイル,361 惨劇霊殿 タムタラの墓所 (Hard),373 城塞奪回 ストーンヴィジル (Hard),365 遺跡救援 カルン埋没寺院 (Hard),367 氷結潜窟 スノークローク大氷壁,371 逆襲要害 サスタシャ浸食洞 (Hard),387 邪念排撃 古城アムダプール (Hard),189 武装聖域 ワンダラーパレス (Hard),188 禁書回収 グブラ幻想図書館,416 幻龍残骸 黙約の塔,150 神域浮島 ネバーリープ,420 強硬突入 イシュガルド教皇庁,421 博物戦艦 フラクタル・コンティニアム,430 廃砦捜索 ダスクヴィジル,434 霊峰踏破 ソーム・アル,441 蒼天聖戦 魔科学研究所,438 邪竜血戦 ドラゴンズエアリー,435 制圧巨塔 シリウス大灯台 (Hard),510 草木庭園 聖モシャーヌ植物園,511 神聖遺跡 古アムダプール市街 (Hard),519 星海観測 逆さの塔 ,516 天竜宮殿 ソール・カイ,555 黒渦伝説 ハルブレーカー・アイル (Hard),557 峻厳渓谷 ゼルファトル,572 稀書回収 グブラ幻想図書館 (Hard),578 巨大防壁 バエサルの長城,615 霊峰浄化 ソーム・アル (Hard),617 海底宮殿 紫水宮,616 壊神修行 星導山寺院,663 漂流海域 セイレーン海,626 伝統試練 バルダム覇道,623 解放決戦 ドマ城,660 巨砲要塞 カストルム・アバニア,661 紅蓮決戦 アラミゴ,689 悪党成敗 クガネ城,662 ,0 ,0 四国合同演習,533 レグラ・ヴァン・ヒュドルス追撃戦,560 絡み合う宿命,592 カルテノー平原遭遇戦,633 ギョドウ現る!,665 ウル王杯闘技会の始まり,705 抗う力,707 終節の合戦,688 海都を震わす人斬りの宴!,708 極悪人コガラシ,709 松葉門外の変,710 ベッコウ島の決闘,711 原初的な彼女,717 時をかける願い,722 燃えよゴージ!,718 漆黒の巨竜,713 ウリエンジェの秘策,684 さらなる剣術の高みへ,706 あと三度、遥かな憧憬,715 あと一度、君に会えたら,716 紅の竜騎士,714 影隠忍法帖,723 次元の狭間:外縁,690 ,0 ,0 集団戦訓練をくぐり抜けろ!,214 彷徨う死霊を討て!,190 全関門を突破し、最深部の敵を討て!,215 ギルガメを捕獲せよ!,216 有毒妖花を駆除せよ!,191 無法者「似我蜂団」を撃滅せよ!,192 夢幻のブラキシオを討て!,220 爆弾魔ゴブリン軍団を撃滅せよ!,219 汚染源モルボルを討て!,221 坑道に現れた妖異ブソを討て!,222 無敵の眷属を従えし、大型妖異を討て!,223 ボムを率いる「ボムクイーン」を討て!,298 不気味な陣形を組む妖異をせん滅せよ!,299 三つ巴の巨人族を制し、遺物を守れ!,300 ,0 ,0 範囲攻撃を避けよう!,537 コンボで敵視を集めよう!,538 実戦でコンボに挑戦しよう!,539 複数の敵から敵視を集めよう!,540 実戦で複数の敵と戦ってみよう!,541 遠距離から敵視を集めよう!,542 敵の増援に対応しよう!,543 味方と協力して敵を倒そう!,544 味方が引きつけている敵を倒そう!,545 敵の攻撃を避けながら戦おう!,546 敵の増援に対応しよう!,547 ギミックを活用して戦おう!,548 味方を回復しよう!,549 複数の味方を回復しよう!,550 敵の攻撃を避けながら戦おう!,551 最終訓練!,552 ,0 ,0 イフリート討伐戦,202 タイタン討伐戦,206 ガルーダ討伐戦,208 真イフリート討滅戦,292 真タイタン討滅戦,293 真ガルーダ討滅戦,294 リットアティン強襲戦,332 極イフリート討滅戦,295 極タイタン討滅戦,296 極ガルーダ討滅戦,297 善王モグル・モグXII世討滅戦,207 極王モグル・モグXII世討滅戦,364 究極幻想 アルテマウェポン破壊作戦,348 イベント用コンテンツ:3,509 イベント用コンテンツ:1,353 イベント用コンテンツ:2,354 真リヴァイアサン討滅戦,281 極リヴァイアサン討滅戦,359 ドルムキマイラ討伐戦,368 ハイドラ討伐戦,369 ギルガメッシュ討伐戦,366 真ラムウ討滅戦,374 極ラムウ討滅戦,375 真シヴァ討滅戦,377 極シヴァ討滅戦,378 アマジナ杯闘技会決勝戦,142 闘神オーディン討滅戦,394 皇都イシュガルド防衛戦,143 アシエン・ナプリアレス討伐戦,426 真ギルガメッシュ討滅戦,396 真ラーヴァナ討滅戦,432 極ラーヴァナ討滅戦,446 真ビスマルク討滅戦,436 極ビスマルク討滅戦,447 ナイツ・オブ・ラウンド討滅戦,437 蒼天幻想 ナイツ・オブ・ラウンド討滅戦,448 魔神セフィロト討滅戦,517 極魔神セフィロト討滅戦,524 ニーズヘッグ征竜戦,559 極ニーズヘッグ征竜戦,566 女神ソフィア討滅戦,576 極女神ソフィア討滅戦,577 鬼神ズルワーン討滅戦,637 極鬼神ズルワーン討滅戦,638 神龍討滅戦,679 スサノオ討滅戦,674 極スサノオ討滅戦,677 ラクシュミ討滅戦,719 極ラクシュミ討滅戦,720 ,0 ,0 亡霊屋敷 ホーンテッドマナー,571 ,0 ,0 クリスタルタワー:古代の民の迷宮,174 大迷宮バハムート:邂逅編1,241 大迷宮バハムート:邂逅編2,242 大迷宮バハムート:邂逅編3,243 大迷宮バハムート:邂逅編4,244 大迷宮バハムート:邂逅編5,245 大迷宮バハムート:侵攻編1,355 大迷宮バハムート:侵攻編2,356 大迷宮バハムート:侵攻編3,357 大迷宮バハムート:侵攻編4,358 クリスタルタワー:シルクスの塔,372 大迷宮バハムート零式:侵攻編1,380 大迷宮バハムート零式:侵攻編2,381 大迷宮バハムート零式:侵攻編3,382 大迷宮バハムート零式:侵攻編4,383 大迷宮バハムート:真成編1,193 大迷宮バハムート:真成編2,194 大迷宮バハムート:真成編3,195 大迷宮バハムート:真成編4,196 クリスタルタワー:闇の世界,151 機工城アレキサンダー:起動編1,442 機工城アレキサンダー:起動編2,443 機工城アレキサンダー:起動編3,444 機工城アレキサンダー:起動編4,445 機工城アレキサンダー零式:起動編1,449 機工城アレキサンダー零式:起動編2,450 機工城アレキサンダー零式:起動編3,451 機工城アレキサンダー零式:起動編4,452 魔航船ヴォイドアーク,508 機工城アレキサンダー:律動編1,520 機工城アレキサンダー:律動編2,521 機工城アレキサンダー:律動編3,522 機工城アレキサンダー:律動編4,523 機工城アレキサンダー零式:律動編1,529 機工城アレキサンダー零式:律動編2,530 機工城アレキサンダー零式:律動編3,531 機工城アレキサンダー零式:律動編4,532 禁忌都市マハ,556 機工城アレキサンダー:天動編1,580 機工城アレキサンダー:天動編2,581 機工城アレキサンダー:天動編3,582 機工城アレキサンダー:天動編4,583 機工城アレキサンダー零式:天動編1,584 機工城アレキサンダー零式:天動編2,585 機工城アレキサンダー零式:天動編3,586 機工城アレキサンダー零式:天動編4,587 影の国ダン・スカー,627 ,0 次元の狭間オメガ:デルタ編1,691 次元の狭間オメガ:デルタ編2,692 次元の狭間オメガ:デルタ編3,693 次元の狭間オメガ:デルタ編4,694 次元の狭間オメガ零式:デルタ編1,695 次元の狭間オメガ零式:デルタ編2,696 次元の狭間オメガ零式:デルタ編3,697 次元の狭間オメガ零式:デルタ編4,698 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ザ・フィースト (8対8 / カジュアルマッチ),518 ,0 ,0 ザ・フィースト (4対4 / ランクマッチ),527 ,0 ★ザ・フィースト (4対4 / 固定ライトパーティ専用),149 ザ・フィースト (8対8 / カスタムマッチ専用 / ウルヴズジェイル演習場),618 ザ・フィースト (4対4 / カスタムマッチ専用 / ウルヴズジェイル演習場),619 ザ・フィースト (8対8 / カジュアルマッチ),631 ,0 ,0 ザ・フィースト (4対4 / ランクマッチ),644 ,0 ザ・フィースト (8対8 / カスタムマッチ専用 / ライケンウィード演習場),642 ザ・フィースト (4対4 / カスタムマッチ専用 / ライケンウィード演習場),646 ,0 ,0 外縁遺跡群 (制圧戦),376 ,0 ,0 シールロック (争奪戦),431 フィールド・オブ・グローリー (砕氷戦),554 ,0 ,0 宝物庫 アクアポリス,558 宝物庫 ウズネアカナル,712 ,0 ,0 ,0 死者の宮殿 B1~B10,561 死者の宮殿 B11~B20,562 死者の宮殿 B21~B30,563 死者の宮殿 B31~B40,564 死者の宮殿 B41~B50,565 死者の宮殿 B51~B60,593 死者の宮殿 B61~B70,594 死者の宮殿 B71~B80,595 死者の宮殿 B81~B90,596 死者の宮殿 B91~B100,597 死者の宮殿 B101~B110,598 死者の宮殿 B111~B120,599 死者の宮殿 B121~B130,600 死者の宮殿 B131~B140,601 死者の宮殿 B141~B150,602 死者の宮殿 B151~B160,603 死者の宮殿 B161~B170,604 死者の宮殿 B171~B180,605 死者の宮殿 B181~B190,606 死者の宮殿 B191~B200,607 ,0 ,0 ,0