[Java] Een UI run-time vertalen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • chronozphere
  • Registratie: Juli 2006
  • Laatst online: 16-12-2020
Hey,

Ben al een tijdje bezig met een applicatie in Java, waarvoor we ook i18n support nodig hebben. Er komt een menuutje in het main menu waaruit de gebruiker een taal kan kiezen. Vervolgens word de hele user-interface vertaald naar die taal.

Ik heb al even gekeken naar resource bundles, en dat gaat allemaal wel lukken. Het probleem dat ik nu heb is: Hoe zoek ik de juiste vertaling bij het juiste component?

Ik wil eigenlijk een key permanent opslaan in elk component (b.v main.menu.save, main.menu.close) en vervolgens die strings gebruiken om de vertaling op te zoeken. Maar ik weet niet hoe ik die informatie aan al mijn components toevoeg. De Component class heeft wel getName() en setName(), maar die naam word AFAIK ook weergegeven, en dat is niet de bedoeling.

Ik ben nu dus druk op zoek naar een oplossing voor dit probleem, maar heb nog niets bruikbaars kunnen vinden. Weet iemand een handige aanpak?

Bedankt!

Acties:
  • 0 Henk 'm!

Verwijderd

Gebruik de beschikbare HashMap

[ Voor 14% gewijzigd door Verwijderd op 30-01-2011 15:48 ]


Acties:
  • 0 Henk 'm!

  • chronozphere
  • Registratie: Juli 2006
  • Laatst online: 16-12-2020
En ik me maar blindstaren op Component. :) Thanks!

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Het google toverwoord dat jij zoekt is i18n (internationalization). Als je daarop zoekt icm bv swing kom je bv op deze pagina uit met een mooie uitleg over hoe met resource bundles om te gaan.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • chronozphere
  • Registratie: Juli 2006
  • Laatst online: 16-12-2020
Thanks! Maar zoals ik zei, daar had ik al naar gekeken. :)

Acties:
  • 0 Henk 'm!

  • Killemov
  • Registratie: Januari 2000
  • Laatst online: 15:56

Killemov

Ik zoek nog een mooi icooi =)

De manier van PissedCapslock is op zich wel aardig, maar je kunt 'm zo slecht zien tijdens het ontwerpen van je scherm. Een meer visuele manier is het gebruik van de key als de zichtbare tekst. ( new JButton( "button.ok" ) ) Vervolgens bij het instantieren van je scherm over alle componenten itereren om de juiste teksten te plaatsen. Een meer ingrijpende manier is het ophalen van de string via een i18nagent. ( new JButton( I18nAgent.getText( BUTTON_OK_CONSTANT ) ) )

[ Voor 16% gewijzigd door Killemov op 02-02-2011 23:29 ]

Hey ... maar dan heb je ook wat!

Pagina: 1