public static bool LanguageExists(PumkinsTranslation translation) { if (translation == null) { return(false); } return(LanguageExists(translation.languageName, translation.author)); }
public static void LoadTranslations() { var guids = AssetDatabase.FindAssets(typeof(PumkinsTranslation).Name); translationScriptGUID = guids[0]; var def = PumkinsTranslation.GetOrCreateDefaultTranslation(); for (int i = Languages.Count - 1; i >= 0; i--) { var lang = Languages[i]; if (i == 0 && def.Equals(lang)) { break; } if (!Helpers.IsAssetInAssets(lang)) { Helpers.DestroyAppropriate(lang, true); //careful with allow destroying assets here Languages.RemoveAt(i); } } //LoadTranslationPresets(); FixTranslationAssets(); if (Languages.Count == 0 || !def.Equals(Languages[0])) { Languages.Insert(0, PumkinsTranslation.Default); } var loaded = Resources.LoadAll <PumkinsTranslation>(resourceTranslationPath); foreach (var l in loaded) { int i = Languages.IndexOf(l); if (i != -1) { Languages[i] = l; } else { Languages.Add(l); } } string langs = "Loaded languages: {"; for (int i = 0; i < Languages.Count; i++) { langs += (" " + Languages[i].languageName); langs += (i != Languages.Count - 1) ? "," : ""; } langs += " }"; PumkinsAvatarTools.LogVerbose(langs); }
static void FixTranslationAssets() { var files = Directory.GetFiles(Helpers.LocalAssetsPathToAbsolutePath(translationPathLocal)); foreach (var path in files) { string localPath = Helpers.AbsolutePathToLocalAssetsPath(path); if (ReplaceTranslationGUIDTemp(path, "m_Script", translationScriptGUID)) { AssetDatabase.ImportAsset(localPath); } PumkinsTranslation translation = AssetDatabase.LoadAssetAtPath <PumkinsTranslation>(localPath); translation?.FixEmptyFields(); } }
public static void SetLanguage(PumkinsTranslation translationFile) { Strings.Translation = translationFile; }