1
0
Fork 0

Merge pull request #103120 from lyuma/fix_translation_uid_hash

CSV import: Generate positve UID for .translation and follow renames
This commit is contained in:
Rémi Verschelde 2025-02-23 12:12:58 +01:00
commit b99a971654
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 11 additions and 3 deletions

View File

@ -142,14 +142,22 @@ Error ResourceImporterCSVTranslation::import(ResourceUID::ID p_source_id, const
}
String save_path = p_source_file.get_basename() + "." + translations[i]->get_locale() + ".translation";
ResourceUID::ID save_id = hash64_murmur3_64(translations[i]->get_locale().hash64(), p_source_id) & 0x7FFFFFFFFFFFFFFF;
bool uid_already_exists = ResourceUID::get_singleton()->has_id(save_id);
if (uid_already_exists) {
// Avoid creating a new file with a duplicate UID.
// Always use this UID, even if the user has moved it to a different path.
save_path = ResourceUID::get_singleton()->get_id_path(save_id);
}
ResourceSaver::save(xlt, save_path);
if (r_gen_files) {
r_gen_files->push_back(save_path);
}
ResourceUID::ID save_id = hash64_murmur3_64(translations[i]->get_locale().hash64(), p_source_id);
ResourceSaver::set_uid(save_path, save_id);
if (!uid_already_exists) {
// No need to call set_uid if save_path already refers to save_id.
ResourceSaver::set_uid(save_path, save_id);
}
}
return OK;