Révision 1292
tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/devtools/MergeDuplicatedStringsInAPlugin.java (revision 1292) | ||
---|---|---|
3 | 3 |
import java.io.FileNotFoundException; |
4 | 4 |
import java.io.IOException; |
5 | 5 |
import java.io.UnsupportedEncodingException; |
6 |
import java.util.HashMap; |
|
7 |
import java.util.TreeMap; |
|
8 |
import java.util.TreeSet; |
|
6 | 9 |
|
7 | 10 |
import org.txm.rcp.translate.i18n.PluginMessagesManager; |
8 | 11 |
import org.txm.rcp.translate.i18n.WorkspaceMessagesManager; |
... | ... | |
25 | 28 |
} |
26 | 29 |
|
27 | 30 |
public void merge(PluginMessagesManager pm) { |
28 |
// TODO Auto-generated method stub |
|
31 |
HashMap<String, String> defaults = pm.getMessagesForDefaultLang(); |
|
32 |
TreeMap<String, String> value2Key = new TreeMap<String, String>(); |
|
33 |
|
|
34 |
TreeMap<String, TreeSet<String>> merges = new TreeMap<String, TreeSet<String>>(); |
|
35 |
TreeSet<String> keys = new TreeSet<String>(defaults.keySet()); |
|
36 |
for (String key : keys) { |
|
37 |
String value = defaults.get(key); |
|
38 |
if (value2Key.containsKey(value)) { // duplicated message |
|
39 |
pm.renameKey(key, value2Key.get(value)); |
|
40 |
merges.get(value2Key.get(value)).add(key); |
|
41 |
} else { |
|
42 |
value2Key.put(value, key); |
|
43 |
merges.put(key, new TreeSet<String>()); |
|
44 |
} |
|
45 |
} |
|
29 | 46 |
} |
30 | 47 |
|
31 | 48 |
/** |
tmp/org.txm.translate.rcp/src/org/txm/rcp/translate/i18n/PluginMessagesManager.java (revision 1292) | ||
---|---|---|
676 | 676 |
for (File p : langs.keySet()) { |
677 | 677 |
HashMap<String, String> h = langs.get(p); |
678 | 678 |
if (h.containsKey(oldName)) { |
679 |
h.put(newName, h.get(oldName)); |
|
679 |
if (h.containsKey(newName) |
|
680 |
&& !h.get(newName).equals(h.get(oldName))) { // a value is already set for the new key |
|
681 |
System.err.println("PluginMessagesManager.renameKey(): WARNING new key=" + newName + " already set in "+p+" with value="+h.get(newName)+" new value="+h.get(oldName)); |
|
682 |
} else { |
|
683 |
h.put(newName, h.get(oldName)); |
|
684 |
} |
|
680 | 685 |
h.remove(oldName); |
681 | 686 |
} |
682 | 687 |
} |
... | ... | |
707 | 712 |
keyModifications.remove(key); // if any modifications was done |
708 | 713 |
} |
709 | 714 |
|
715 |
public void newKey(String defaultMessage) { |
|
716 |
String key = NormalizeKeys.normalize(defaultMessage); |
|
717 |
String newKey = ""+key; |
|
718 |
int c = 1; |
|
719 |
while (messageKeys.contains(newKey)) { |
|
720 |
newKey = key+"_"+(c++); |
|
721 |
} |
|
722 |
|
|
723 |
messageKeys.add(newKey); |
|
724 |
getMessagesForDefaultLang().put(newKey, defaultMessage); |
|
725 |
} |
|
726 |
|
|
710 | 727 |
/** |
711 | 728 |
* |
712 | 729 |
* @return the renamed keys |
... | ... | |
801 | 818 |
System.out.println("dir="+pmManager.getProjectDirectory()); |
802 | 819 |
System.out.println("PluginMessagesManager.main(): done."); |
803 | 820 |
} |
804 |
|
|
805 |
private void newKey(String defaultMessage) { |
|
806 |
String key = NormalizeKeys.normalize(defaultMessage); |
|
807 |
String newKey = ""+key; |
|
808 |
int c = 1; |
|
809 |
while (messageKeys.contains(newKey)) { |
|
810 |
newKey = key+"_"+(c++); |
|
811 |
} |
|
812 |
|
|
813 |
messageKeys.add(newKey); |
|
814 |
getMessagesForDefaultLang().put(newKey, defaultMessage); |
|
815 |
} |
|
816 | 821 |
} |
Formats disponibles : Unified diff