Comme axelclk a écrit dans son lien ... Eclipse fournissent une
// $ NON-NLS-1
$
Déclaration de notifier le projet que la première chaîne dans cette ligne ne doit pas traduire. Toute autre chaîne que vous pouvez trouver en appelant Source-> Externaliser les chaînes
Les chaînes externes incluent toutes les langues que vous voulez prendre en charge.
fichier qui comprennent les traductions ressemblant à: PluginPage.Error1 = text1 PluginPage.Error2 = texte2
classe qui lu la traduction
private static final String BUNDLE_NAME = "com.plugin.name"; //$NON-NLS-1$
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
private PluginMessages() {
}
public static String getString(String key) {
// TODO Auto-generated method stub
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
Et vous pouvez l'appeler comme:
String msg = PluginMessages.getString("PluginPage.Error2"); //$NON-NLS-1$
EDIT:
Lorsqu'une chaîne est externalisée et que vous souhaitez utiliser la chaîne d'origine, vous pouvez supprimer la chaîne externalize de tous les fichiers de propriétés, sans la chaîne par défaut. Lorsque l'ensemble ne peut pas trouver un fichier de message correspondant à la langue locale, la valeur par défaut est utilisée.
Mais cela ne fonctionne pas à l'exécution.
Oui, nous pourrions déplacer les chaînes ne traduisent pas dans leurs propres fichiers qui restent là où ils sont. Le problème avec ceci est que vos ressources deviennent désorganisées. Pas la pire chose au monde, cependant. Merci –
Solution de faible technologie difficile pour les traducteurs de se tromper :-) Les ressources sont-elles en ResourceBundle? – TofuBeer
Oui. Le problème est que nous avons des outils pour pré-traiter les fichiers avant de les envoyer. J'analyse toutes les ressources et n'envoie que les chaînes anglaises nouvelles/modifiées, donc je veux ignorer toutes les chaînes de do-not-translate. –