2009-12-08 4 views
1

Le cadre d'application pivotant peut-il être utilisé pour la mise en œuvre d'applications pivotantes multilingues? Si oui, comment cela devrait-il être fait? Dois-je utiliser plusieurs fichiers .properties, un pour chaque langue? Comment puis-je informer le système du fichier de propriétés à utiliser? Est-ce que quelqu'un sait un bon tutoriel pour cela?Cadre d'application Swing pour application multilingue

+1

Juste pour clarifier, est-ce une question sur JSR-296 "Swing Application Framework", ou juste sur la programmation dans la vieille vanille Swing? J'ai supposé qu'il s'agit de JSR-296 dans ma réponse ci-dessous. –

+0

JSR-296 en effet ... – Fortega

Répondre

2

Vous pouvez mettre ce qui suit dans votre classe de panneau de base (ou nulle part ailleurs, et le brancher) :

public ResourceMap getResourceMap() { 
    if (resourceMap == null) { 
     ApplicationContext context = getContext(); 
     if (context != null) { 
      resourceMap = context.getResourceMap(getResourceStartClass(), 
        getResourceStopClass()); 
     } 
    } 

    return resourceMap; 
} 

public ApplicationContext getContext() { 
    if (applicationContext == null) { 
     Application app = getApplication(); 
     if (app != null) { 
      applicationContext = app.getContext(); 
     } 
    } 

    return applicationContext; 
} 

public Application getApplication() { 
    if (application == null) { 
     application = Application.getInstance(); 
    } 

    return application; 
} 
+0

Merci pour cela. Cela fonctionne pour moi, avec le nom correct pour les fichiers de propriétés ... Bien que cela semble un peu étrange, vous appliquez le modèle singleton dans votre méthode getApplication(). Cela ressemble à des frais généraux pour moi. Pourquoi n'appelez-vous pas simplement 'Application.getInstance()' ici? – Fortega

+0

c'est une sorte de chargement paresseux. Je l'ai obtenu à partir d'une ancienne base de code, donc si Application.getInstance() est elle-même paresseuse, vous pouvez omettre cette méthode. – Bozho

1

jetez un coup d'œil à la classe ResourceBundle et this tutorial.

NB: cette classe est pas liée au Swing, vous pouvez l'utiliser dans les applications console ou Web)

0

Le projet d'origine est mort maintenant, mais vous pouvez en utiliser une fourche. Le plus actif est BSAF.

Questions connexes