diff --git a/app/src/main/assets/Support/servant/Kazuradrop/asc1.png b/app/src/main/assets/Support/servant/Kazuradrop/asc1.png new file mode 100644 index 0000000000..f4b62b8874 Binary files /dev/null and b/app/src/main/assets/Support/servant/Kazuradrop/asc1.png differ diff --git a/app/src/main/assets/Support/servant/Kazuradrop/asc2.png b/app/src/main/assets/Support/servant/Kazuradrop/asc2.png new file mode 100644 index 0000000000..b9addc1dff Binary files /dev/null and b/app/src/main/assets/Support/servant/Kazuradrop/asc2.png differ diff --git a/app/src/main/assets/Support/servant/Kazuradrop/asc3.png b/app/src/main/assets/Support/servant/Kazuradrop/asc3.png new file mode 100644 index 0000000000..d1f5f12d20 Binary files /dev/null and b/app/src/main/assets/Support/servant/Kazuradrop/asc3.png differ diff --git a/app/src/main/assets/Support/servant/Kazuradrop/asc4.png b/app/src/main/assets/Support/servant/Kazuradrop/asc4.png new file mode 100644 index 0000000000..fa03175598 Binary files /dev/null and b/app/src/main/assets/Support/servant/Kazuradrop/asc4.png differ diff --git a/app/src/main/assets/Support/servant/Kazuradrop/murian.png b/app/src/main/assets/Support/servant/Kazuradrop/murian.png new file mode 100644 index 0000000000..d9e04710b8 Binary files /dev/null and b/app/src/main/assets/Support/servant/Kazuradrop/murian.png differ diff --git a/app/src/main/java/io/github/fate_grand_automata/util/SupportNameResources.kt b/app/src/main/java/io/github/fate_grand_automata/util/SupportNameResources.kt index b5267b1a2d..14105e445f 100644 --- a/app/src/main/java/io/github/fate_grand_automata/util/SupportNameResources.kt +++ b/app/src/main/java/io/github/fate_grand_automata/util/SupportNameResources.kt @@ -30,6 +30,7 @@ object SupportNameResources { "Douman" to R.string.servant_name_douman, "Flora" to R.string.servant_name_flora, "Jalter" to R.string.servant_name_jalter, + "Kazuradrop" to R.string.servant_name_kazuradrop, "Koyanskaya" to R.string.servant_name_koyanskaya, "Koyanskaya of the Darkness (Foreigner)" to R.string.servant_name_koyanskaya_of_the_darkness_foreigner, "Lady Avalon" to R.string.servant_name_lady_avalon, diff --git a/app/src/main/res/values-b+zh+CN/localized.xml b/app/src/main/res/values-b+zh+CN/localized.xml index 587fe1fb6b..34b9f67117 100644 --- a/app/src/main/res/values-b+zh+CN/localized.xml +++ b/app/src/main/res/values-b+zh+CN/localized.xml @@ -469,19 +469,20 @@ Archetype:Earth - 阿尔托莉雅·卡斯特(Caster) + 阿尔托莉雅(Caster) "BB迪拜" - 克洛伊·冯·爱因兹贝伦(Avenger) - 谜之代行者C.I.E.L - 芦屋道满 + 克洛伊(Avenger) + 希耶尔 + 道满 芙萝拉 贞德〔Alter〕 + Kazuradrop 光之高扬斯卡娅 暗之高扬斯卡娅 "阿瓦隆女士" - 玛修·基列莱特 + 玛修 "梅林" - 尼禄·克劳狄乌斯〔新娘〕 + 尼禄〔新娘〕 "奥伯龙" 蛇女房 "司马懿(莱妮丝)" @@ -499,7 +500,7 @@ 献给幸福的新娘 "迦勒底午餐时光" 迦勒底之晨 - "迦勒底下午茶时光" + "迦勒底午茶时光" "异星之神" "来自NFF的爱" 黄金相扑~岩场~ @@ -511,7 +512,7 @@ "蒙娜丽莎" 至诚的一针 绘画之夏 - "报告检查" + "检查报告" "秘密任务" 迦勒底之人 "手稿之翼" diff --git a/app/src/main/res/values-b+zh+TW/localized.xml b/app/src/main/res/values-b+zh+TW/localized.xml index 35697d8956..1f3daec260 100644 --- a/app/src/main/res/values-b+zh+TW/localized.xml +++ b/app/src/main/res/values-b+zh+TW/localized.xml @@ -404,4 +404,45 @@ Order Change" "更新已下載完成,於 5 秒鐘後重啟" "等待 AP 恢復中,%d 分鐘後重新檢查" "已關閉撤退功能且從者已全數退場" + + + Archetype:Earth + 阿爾托莉亞(Caster) + BB杜拜 + 克洛伊(Avenger) + 希耶爾 + 道滿 + 貞德〔Alter〕 + Kazuradrop + 光之高揚斯卡婭 + 暗之高揚斯卡婭 + Lady阿瓦隆 + 瑪修 + 梅林 + 尼祿〔Bride〕 + 奧伯隆 + 司馬懿〔萊涅絲〕 + 斯卡蒂 + 斯卡蒂(Ruler) + 玉藻前 + 諸葛孔明〔埃爾梅羅Ⅱ世〕 + + + 天際旋蕩 + 貝拉.麗莎 + 黑之聖杯 + 迦勒底午餐時光 + 迦勒底晨光 + 迦勒底午茶時光 + 來自NFF的愛 + 黃金相撲~岩場~ + 嘮嘮叨叨看板娘 + 聖夜晚餐 + 萬華鏡 + 魔道元帥 + 蒙娜麗莎 + 繪畫之夏 + 檢查報告 + 秘密任務 + 手稿之翼 \ No newline at end of file diff --git a/app/src/main/res/values-ja/localized.xml b/app/src/main/res/values-ja/localized.xml index 23f6af1f73..c686afb991 100644 --- a/app/src/main/res/values-ja/localized.xml +++ b/app/src/main/res/values-ja/localized.xml @@ -491,24 +491,25 @@ アーキタイプ:アース - アルトリア・キャスター(キャスター) + アルトリア(キャスター) "BBドバイ" - クロエ・フォン・アインツベルン(アヴェンジャー) - 謎の代行者C.I.E.L - 蘆屋道満 + クロエ(アヴェンジャー) + シエル + 道満 "フローラ" ジャンヌ・ダルク〔オルタ〕 + カズラドロップ 光のコヤンスカヤ 闇のコヤンスカヤ "レディ・アヴァロン" - マシュ・キリエライト + マシュ "マーリン" - ネロ・クラウディウス〔ブライド〕 + ネロ〔ブライド〕 "オベロン" 蛇女房 "司馬懿(ライネス)" - "スカサハ=スカディ" - "スカサハ=スカディ(ルーラー)" + スカディ + スカディ(ルーラー) "玉藻の前" "ティアマト(サマー)" "U-オルガマリー" diff --git a/app/src/main/res/values-ko/localized.xml b/app/src/main/res/values-ko/localized.xml index 84e47684ff..3e3c4f44f0 100644 --- a/app/src/main/res/values-ko/localized.xml +++ b/app/src/main/res/values-ko/localized.xml @@ -476,4 +476,46 @@ "다운로드가 완료되었습니다. 5초 내로 재시작됩니다." "AP 회복을 기다리고 있습니다. %d분 후 재확인합니다." "모든 서번트가 패배하였으며 자동 철수는 비활성화 상태입니다." + + + 아키타입 : 어스 + 알트리아(캐스터) + BB 두바이 + 클로에(어벤저) + 시엘 + 도만 + 잔 다르크(얼터) + 카즈라드롭 + 빛의 코얀스카야 + 어둠의 코얀스카야 + 레이디 아발론 + 마슈 + 멀린 + 네로(브라이드) + 오베론 + 사마의(라이네스) + 스카디 + 스카디(룰러) + 타마모노마에 + 제갈공명(엘멜로이 2세) + + + 에어리얼 드라이브 + 벨라리자 + 검은 성배 + 칼데아 런치타임 + 칼데아 모닝 + 칼데아 티타임 + NFF에서 사랑을 담아 + 골든 스모 ~이와바쇼~ + 구다구다 마스코트걸 + 성야의 만찬 + 컬라이더스코프 + 마도원수 + 모나리자 + 지성의 한 땀 + 페인팅 서머 + 리포트 체크 + 시크릿 미션 + 수고의 날개 \ No newline at end of file diff --git a/app/src/main/res/values/localized.xml b/app/src/main/res/values/localized.xml index fc6d4845dc..b715cfe48c 100644 --- a/app/src/main/res/values/localized.xml +++ b/app/src/main/res/values/localized.xml @@ -546,8 +546,9 @@ After pressing on the button, switch the app filter from \"Not optimized\" to \" Douman Flora Jalter + Kazuradrop Koyanskaya - Koyanskaya of the Darkness (Foreigner) + Koyanskaya (Foreigner) Lady Avalon Mash Merlin diff --git a/docs/agents/translations.md b/docs/agents/translations.md index c7ea72a44f..2db02e8cc7 100644 --- a/docs/agents/translations.md +++ b/docs/agents/translations.md @@ -44,3 +44,28 @@ A missing entry fails silently: the lookup falls back to the raw English name, w how user-added custom supports are meant to display. A rename that skips step 3 breaks the mapping the same quiet way, so the existing translation just stops being used. New strings reach the other languages through the POEditor sync above like any other source string. + +### Looking up official names + +Take translated servant and CE names from the game data on [Atlas Academy](https://atlasacademy.io) +rather than translating them by hand. The language folders map to servers: `values-ja` → JP, +`values-b+zh+CN` → CN, `values-b+zh+TW` → TW, `values-ko` → KR. + +- Search by English name: `https://api.atlasacademy.io/basic/NA/servant/search?name=`. + For an entry that isn't on NA yet, or to look up many at once, download + `https://api.atlasacademy.io/export//basic_servant.json` (CEs: `basic_equip.json`). + Find the ID by its JP or NA name, then read the other regions' names under that same ID. + Keep only `type` `normal`/`heroine` (servants) or `servantEquip` (CEs). +- One JP name can belong to several servants (Jalter Avenger and Berserker, Skadi Caster and + Ruler). Choose by class to match the asset. +- If the ID is missing from a region's export, the servant or CE isn't released there yet. + Leave the string out; the app then falls back to English. +- Short names a region uses in battle are in the `nice` endpoint + (`/nice//servant/`) under `ascensionAdd.overWriteServantBattleName`. + +Servant labels stay short, at most 15 characters, like the English ones: + +- Use the first name alone when no other servant shares it (マシュ, not マシュ・キリエライト). +- Add the class in parentheses when the asset is one of several versions of a servant: + クロエ(アヴェンジャー), 克洛伊(Avenger), 클로에(어벤저). +CE names stay in their full official form.