Browse Source

Do a second stage remap, so it considers translation first, atlas second, closes #5147

Juan Linietsky 9 years ago
parent
commit
72ab3c2236
1 changed files with 17 additions and 2 deletions
  1. 17 2
      core/path_remap.cpp

+ 17 - 2
core/path_remap.cpp

@@ -59,12 +59,20 @@ String PathRemap::get_remap(const String& p_from) const {
 		return p_from;
 	} else {
 
+		const RemapData *ptr2=NULL;
+
 		String locale = TranslationServer::get_singleton()->get_locale();
 
 		if (ptr->locale.has(locale)) {
 			if (OS::get_singleton()->is_stdout_verbose())
 				print_line("remap found: "+p_from+" -> "+ptr->locale[locale]);
-			return ptr->locale[locale];
+
+			ptr2=remap.getptr(ptr->locale[locale]);
+
+			if (ptr2 && ptr2->always!=String()) //may have atlas or export remap too
+				return ptr2->always;
+			else
+				return ptr->locale[locale];
 		}
 
 		int p = locale.find("_");
@@ -73,7 +81,14 @@ String PathRemap::get_remap(const String& p_from) const {
 			if (ptr->locale.has(locale)) {
 				if (OS::get_singleton()->is_stdout_verbose())
 					print_line("remap found: "+p_from+" -> "+ptr->locale[locale]);
-				return ptr->locale[locale];
+
+				ptr2=remap.getptr(ptr->locale[locale]);
+
+				if (ptr2 && ptr2->always!=String()) //may have atlas or export remap too
+					return ptr2->always;
+				else
+					return ptr->locale[locale];
+
 			}
 		}