private static void OnPostprocessAllAssets( string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { TranslationManager translationManager = TranslationManager.Instance; if (translationManager == null) { return; } string currentLanguagePropertiesFileNameSuffix = translationManager.currentLanguage != translationManager.defaultPropertiesFileLanguage ? "_" + LanguageHelper.Get2LetterIsoCodeFromSystemLanguage(translationManager.currentLanguage, "en").ToLowerInvariant() : ""; string currentLanguagePropertiesFileName = translationManager.propertiesFileName + currentLanguagePropertiesFileNameSuffix + ".properties"; string fallbackLanguagePropertiesFileName = translationManager.propertiesFileName + ".properties"; bool currentTranslationsUpdated = false; bool fallbackTranslationsUpdated = false; string[][] pathArrays = { importedAssets, deletedAssets, movedAssets }; foreach (string[] pathArray in pathArrays) { foreach (string path in pathArray) { if (path.EndsWith(fallbackLanguagePropertiesFileName)) { if (translationManager.LogInfoNow) { Debug.Log("Reloading default language translations because of changed file: " + path); } translationManager.ClearFallbackLanguageTranslations(); fallbackTranslationsUpdated = true; } else if (path.EndsWith(currentLanguagePropertiesFileName)) { if (translationManager.LogInfoNow) { Debug.Log("Reloading current language translations because of changed file: " + path); } translationManager.ClearCurrentLanguageTranslations(); currentTranslationsUpdated = true; } if (currentTranslationsUpdated && fallbackTranslationsUpdated) { // All languages have been updated already. break; } } } if (currentTranslationsUpdated || fallbackTranslationsUpdated) { translationManager.UpdateTranslatorsInScene(); } if (translationManager.generateConstantsOnResourceChange && fallbackTranslationsUpdated) { CreateTranslationConstantsMenuItems.CreateTranslationConstants(); } }