12E38C99-D838-41D5-BB7F-3307F328949B.jpeg
1孝宗,首先在網上下載I2 Language 工具怀大,獲取全套源碼
2肤粱,進入LocalizationEditor
找到UpdateTermsToShownInList方法捉蚤,此方法會在加載資源時候觸發(fā)一次,翻譯當前資源文件
static void UpdateTermsToShownInList()
{
EditorApplication.update -= UpdateTermsToShownInList;
mUpdateShowTermIsScheduled = false;
mShowableTerms.Clear();
mSelectedCategories.Sort();
foreach (KeyValuePair<string, ParsedTerm> kvp in mParsedTerms)
{
var parsedTerm = kvp.Value;
if (ShouldShowTerm(parsedTerm.Term, parsedTerm.Category, parsedTerm.Usage, parsedTerm))
mShowableTerms.Add(parsedTerm);
}
GUITools.RepaintInspectors();
GUITools.ScheduleRepaintInspectors();
// if (GameManager.Instance == null) return;
//Timer.Schedule(GameManager.Instance, 3, () =>
//{
// Translate();
//});
}
下面需要寫自動翻譯代碼:
static void Translate()
{
Debug.Log("LinneaTerms 準備總數(shù)目 = " + mParsedTerms.Count);
var data = new List<TermData>();
foreach (var kvp in mParsedTerms)
{
var parsedTerm = kvp.Value;
if (parsedTerm.termData == null || mLanguageSource == null) continue;
var isHaveKong = false;
//排除已翻譯完成的資源
for (var i = 0; i < mLanguageSource.mLanguages.Count; ++i)
{
if (mLanguageSource.mLanguages[i].IsEnabled() && string.IsNullOrEmpty(parsedTerm.termData.Languages[i]))
{
isHaveKong = true;
break;
}
}
if (isHaveKong)
{
data.Add(parsedTerm.termData);
}
}
Debug.Log("LinneaTerms 自動翻譯開始 總數(shù)目 " + data.Count);
doTranslate(0, data);
}
代碼中我加了過濾卫键,如果已經翻譯了的資源捺疼,不會再次翻譯,需要重新翻譯永罚,需屏蔽過濾代碼啤呼。
執(zhí)行以上代碼,即可實現(xiàn)自動化翻譯所有資源呢袱。