JavaFX 8对话框内部元素的本地化

Mar*_*bel 7 java localization javafx javafx-8

我目前正在开发一个带有斯洛伐克语本地化的JavaFX应用程序,在应用程序内部,我正在使用一个Alert对话框来显示可扩展内容窗格的异常,如下图所示:

显示详细信息 - 警报屏幕 隐藏详细信息 - 警报屏幕

我想有这样的对话翻译完成其与进展顺利Header,TitleContent但我不能找到一种方法如何在翻译Show/Hide details的扩张区的标签.

所以我的问题可以有点概括:如何更改/翻译JavaFX内部元素的文本?

在此先感谢您的帮助.

PS:为了为异常创建此Alert对话框,我使用的代码在code.makery.ch找到

Ulu*_*Biy 3

对于您的特定用例,您可以添加另一个侦听器,expandedProperty该侦听器将覆盖“详细信息按钮”显示的文本:

Platform.runLater(() ->
{
    Hyperlink detailsButton = ( Hyperlink ) alert.getDialogPane().lookup( ".details-button" );

    alert.getDialogPane().expandedProperty().addListener(
            ( ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue ) ->
    {
        detailsButton.setText( newValue ? "My less text" : "My more text" );
    });

    // trigger listeners
    alert.getDialogPane().setExpanded( true );
    alert.getDialogPane().setExpanded( false );
});
Run Code Online (Sandbox Code Playgroud)

有关更常见的 hack,请参阅本地化 JavaFx 控件。从那里,您需要将以下键放入自定义属性文件中:

// translate these
Dialog.detail.button.more = Show Details
Dialog.detail.button.less = Hide Details
Run Code Online (Sandbox Code Playgroud)