廚圣的高級修養(yǎng)——Alice in Cradle的localization語法
"Pitiable does NOT imply Adorable." - BobUnderGrave
1.前言
localization,簡寫為l10n(l和n之間有10個字母)。直譯為"本土化"(不建議譯為"本地化",因為本地這個詞往往對應(yīng)的是遠(yuǎn)程/在線),是包括但不限于文本翻譯(往往還涉及到數(shù)字/日期/時間的格式調(diào)整、民間計量單位的換算等)的一項重要工作。
Alice in Cradle的StreamingAssets文件夾中有一個localization子文件夾,里面放置了游戲每種語言的翻譯文本。例如簡體中文的負(fù)責(zé)人之一就是b站官方號的運營者,而玩家社區(qū)也流傳著粵語和梗體中文這樣的補(bǔ)丁包。
@諾艾兒Noel 的022p全程戰(zhàn)斗禁詠唱流程就是通過更改了大量漢化文本來呈現(xiàn)出"諾艾兒在兩周前的事故中留下了無法在戰(zhàn)斗中詠唱魔法的后遺癥,伊夏為了尋找治愈她的藥材而獨自去挑戰(zhàn)森之領(lǐng)主"的劇情。
隨著我們對哈語言(F7右側(cè)的腳本)的語法分析日趨完善并即將制作出事件編輯器,掌握l10n語法也就成為了劇情編寫的重要一環(huán),即便拋開哈語言而僅僅更改文本也很有趣不是么。
2.準(zhǔn)備工作

首先請打開StreamingAssets文件夾的_debug.txt,把里面的reloadmtr、announce、timestamp這三項后面的0都改成1,從而啟用"F9熱重載譯文、F7控制臺"(左下角看到時間戳說明有效)這兩項功能。此后即使您在游戲運行過程中修改了譯文文件并保存,也可以隨時按下F9立即刷新它們。
重要:所有txt文件編碼必須為UTF-8,必須用Unix換行(LF、\n),不能用Windows回車換行(CRLF,\r\n),否則可能變成雙倍行距。
Win10以上的記事本可以正確讀取LF,但新建的文件默認(rèn)是CRLF。
(Win8.1以下尤甚)建議使用微軟Visual Studio Code編輯器。
3.localization文件夾的結(jié)構(gòu)
該文件夾下有一個__AdditionalFonts子文件夾用于存放中文的高清規(guī)范字體,0.22版本從fantia下載是不包括這個文件夾的。
此外有一堆___family_lang.txt(lang為語言代碼)用來引導(dǎo)語言設(shè)置。
每個lang對應(yīng)一個同名的子文件夾(日語為_)。
每個子文件夾(如zh-cn)里又有一堆文件,其中icon.png為該語言在標(biāo)題畫面的圖標(biāo)(一般為國旗)。
其他文件分為兩大類,一類為lang_tx*.txt,一類為ev_*.txt,前者為UI中的零碎文本,后者為事件中的臺詞。
4.lang_tx*.txt的語法
這類文件的第一行一定為%FAMILY lang
其他內(nèi)容有幾種寫法:
1. 單行寫法:&&標(biāo)識符 內(nèi)容
此時內(nèi)容必須寫在同一行內(nèi)(但仍然可以使用\n換行),內(nèi)容可能含有&1、&2等變量,例如:
&&Depert_from_noon 從第&1天的早上開始 (危險度:&2)
&&Depert_from_evening 從第&1天的黃昏開始 (危險度:&2)
&&Depert_from_night 從第&1天的夜晚開始 (危險度:&2)
2. 多行寫法:習(xí)慣上最后空一行
/* ___ 標(biāo)識符 ___ */
第一行
...
最后一行
(下一個詞條)
例如:
/* ___ Summoner__descryption ___ */
危險度: &1
可能出現(xiàn)的敵人:
&2
污染體: 最多 &3 單位
(下一個詞條)
5.ev_*.txt的語法
這類文件由若干條對話組成,每條對話的語法形如:
*事件id x_dd
第一行
...
至多五行
*
第二頁
(下一條對話)
事件id會顯示在F7界面右上角,例如s00_0a。它可以被復(fù)制下來并且輸入到F7菜單的左上角,例如輸入evt s00_0a回車后就能再次觸發(fā)該事件。
同一事件中的所有對話似乎只有第一條需要寫明事件id,后面的可以直接以*x_dd開頭。
x_dd為MSG指令的參數(shù),dd為兩位數(shù)字表示對話編號。
x為角色占位符,取值范圍包括但不限于(括號中的大寫字母為輔助記憶):
d:提爾德?柯涅爾(三哥,tilDe)
f:德爾菲尼?柯涅爾(父親,F(xiàn)ather/delFini)
g:梅法?格里亞德(藍(lán)發(fā)隊長,Gridyard)
i:伊夏?波利斯塔切爾(黃發(fā)同學(xué),ixIa)
l:阿爾瑪?奧普菲帕姆(戴帽子的同學(xué),aLma)
n:諾艾兒?柯涅爾(自己,Noel)
nb:浴室的諾艾兒(Noel Bath)
p:普莉姆拉老師(Primula)
s:奧斯托利亞(白狗獸人,oStrea)
t:南丁格爾(商人,nighTingale)
v:麗薇歌塔?柯涅爾(二姐,laeVigata)
w:瓦羅斯(黑狼獸人,Walross)
一頁對話一般最多可以寫五行(第六行會出界),每行最多可以寫十六個全角字符(多了會導(dǎo)致整頁字號變?。?,如需分頁可以用獨占一行的星號。
6.靜態(tài)文本中的控制序列
lang_tx*.txt這種靜態(tài)文本中可使用的控制序列并不是很多,不過它們?nèi)靠梢杂糜趀v_*.txt的臺詞中。
1. 字號和顏色:
語法為<font k1="v1" k2="v2" ...>文本</font>。
這里的k可以為size(字號)、linespacing(行距)、color(顏色)、alpha(不透明度)等,如:
<font color="#E70B0B">設(shè)置將在游戲重啟后生效。</font>
2. 字體變種:
語法為<b>粗體</b><i>斜體</i><u>下劃線</u><del>刪除線</del>。
顏色和字體變種可以直接在markdown編輯器中預(yù)覽。
3. 按鍵提示:
語法為<key 鍵名/>,會顯示為該按鍵的提示圖標(biāo)。
鍵名的取值范圍如下(括號內(nèi)為默認(rèn)值):
submit:確定(回車)
cancel:取消(Esc)
la/ra/ta/ba:左右上下
(記憶方法:Left Right Top Bottom Arrow)
z/x/c/a/s/d:普攻/魔法/隱藏對話框/地圖/未用到/快速道具
jump:跳躍(Up)
lsh:閃避(左Shift)
run:奔跑(Space)
menu:菜單(Esc)
ltab/rtab:向左/右切換標(biāo)簽(Q/E)
4. 嵌入圖標(biāo):
語法為<img mesh="圖標(biāo)名"/>,具體有哪些請善用Visual Studio Code的跨文件搜索功能。
7.臺詞中的控制序列
ev_*.txt中可使用的控制序列就多多了。
1. 對話框樣式調(diào)整:
語法為<樣式>,需要寫在一條對話的開頭??捎玫臉邮接校?/p>
normal:常規(guī)
angry:劍山污染體
think:心想
circ:圓形(未用到)
device:法杖無線通信
noise:噪音,一般和device一起使用。
2. 打字速度調(diào)整:
語法為<I>或<Wn>(n為1-4)。
前者會立即打完本條對話的剩余字符,后者會暫停相當(dāng)于打10n個字的時長。
3. 打字特效/顏色調(diào)整:
語法為<m 特效>文本<m>或<c 顏色>文本<c>。
可用的特效有:ple,joy,scary,fadein,cry,strong,vib,normal。
可用的顏色有:red,ora,yel,gre,blu,pin,gra,whi,blk,
分別表示:紅橙黃綠藍(lán)粉灰白黑。
例如:<m joy><c blue>「可憐就等于可愛」<c><m>
4. 快捷字號調(diào)整:
語法為<big>或<small>,會將隨后的字號調(diào)整到38或12。
5. 上方注音:
語法形如<rb c="Cradle">搖籃</rb>。
它會把雙引號里的文字顯示在正文上方。
8.后記
建議先從ev_s10.txt的*s10_4c_srng x_00入手改動,這一段是家里那個介紹霰彈的NPC的獨白,可以用星號寫任意多頁哦。
本文由Alice in Cradle二創(chuàng)計算機(jī)技術(shù)組BobUnderGrave(簡稱BUG)撰寫,轉(zhuǎn)載請注明出處。
AinC事件編輯器絕贊開發(fā)中,申請內(nèi)測資格請加入Q群321655399(AinC拜年紀(jì)2024)。