Sascha's Wiki

Menüpunkte und Actions internationalisieren

Hier wird von Deutscher und Englischer Internationalisierung ausgegangen, wobei die Englisch als Standard für nicht vorhandene Übersetzungen verwendet wird.

Um eigene Menüpunkte zu internationalisieren genügt es die Layerdatei in der das Menü registriert ist anzupassen und die zugehörige Bundle zu erzeugen.

Dateien:

  1. Bundle.properties
  2. Bundle_de_DE.properties
  3. Bundle_en.properties
  4. layer.xml

In der layer.xml wird die markierte Zeile 6 hinzugefügt. Hier muss nur das bundlevalue an das eigene Menü und Modul angepasst werden.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" "http://www.netbeans.org/dtds/filesystem-1_2.dtd">
<filesystem>
    <folder name="Menu">
        <folder name="Version Control">
            <attr name="SystemFileSystem.localizingBundle" stringvalue="my.app.module.Bundle" />
            <!-- <attr name="displayName" bundlevalue="my.app.module.Bundle#Menu/VersionSupport"/> Alternative funktioniert nur nicht immer-->
            <file name="org-netbeans-modules-subversion-ui-checkout-CheckoutAction.shadow">
                <attr name="originalFile" stringvalue="Actions/Subversion/org-netbeans-modules-subversion-ui-checkout-CheckoutAction.instance"/>
            </file>
        </folder>
        <folder name="Versioning"/>
    </folder>
</filesystem>

anschließend wird in den Bundle.properties Dateien im my.app.module die Übersetzung hizugefügt.

Menu/VersionSupport=Version Control
Menu/VersionSupport=Versionsverwaltung
Menu/VersionSupport=Version Control

Actions

Um eine Action zu internationalisieren genügt es in dem Verzeichnis eine Bundle.properties für die gewünschten Sprachen anzulegen.

Dateien:

  1. Bundle.properties
  2. Bundle_de_DE.properties
  3. Bundle_en.properties
  4. blaAction.java

Zuerst muss man den Key der Action herausfinden dieser wird über die @Message Anotation erkannt hier Zeile 11 (CTL_bla).

...
@ActionID(
        category = "Build",
        id = "my.app.module.actions.bla")
@ActionRegistration(
        iconBase = "my/app/module/blaActionIcon.png",
        displayName = "#CTL_bla")
@ActionReferences({
    @ActionReference(path = ActionPath.MENU, position = 0)
})
@Messages("CTL_bla=Bla Action English")
public final class blaAction implements ActionListener {
...

Anschließend müssen im selben Package wie die Action die benötigten Bundle.properties Dateien angelegt werden und die zugehörige Übersetzung hinzugefügt werden.

#Hier darf der Key nicht eingetragen werden, da es sonst zu Fehlern kommt. Der Default-Wert befindet sich in der Action selbst (vgl. Zeile 11 blaAction.java) 
CTL_bla=Bla Action Deutsch
CTL_bla=Bla Action English

java/netbeans/internationalisierungmenuandactions.txt · Zuletzt geändert: 2016/04/21 09:15 (Externe Bearbeitung)