JavaFX 8 对话框内部元素的本地化
JavaFX 8 Localization of dialog's internal elements
我目前正在开发一个本地化为斯洛伐克语的 JavaFX 应用程序,在应用程序内部,我正在使用 Alert
对话框来显示带有可扩展内容窗格的异常,如下图所示:
我想完全翻译此对话框,它在 Header
、Title
或 Content
中运行良好,但我找不到如何翻译 Show/Hide details
可扩展区域的标签。
所以我的问题可以稍微概括一下:How to change/translate JavaFX 内部元素的文本?
在此先感谢您的帮助。
PS:为了创建异常警报对话框,我使用了 code.makery.ch
上的代码
对于您的特定用例,您可以向 expandedProperty
添加另一个侦听器,这将覆盖 "details button" 显示的文本:
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 );
});
有关更常见的 hack,请参阅 Localizing JavaFx Controls。从那里您需要将以下键放入您的自定义属性文件:
// translate these
Dialog.detail.button.more = Show Details
Dialog.detail.button.less = Hide Details
我目前正在开发一个本地化为斯洛伐克语的 JavaFX 应用程序,在应用程序内部,我正在使用 Alert
对话框来显示带有可扩展内容窗格的异常,如下图所示:
我想完全翻译此对话框,它在 Header
、Title
或 Content
中运行良好,但我找不到如何翻译 Show/Hide details
可扩展区域的标签。
所以我的问题可以稍微概括一下:How to change/translate JavaFX 内部元素的文本?
在此先感谢您的帮助。
PS:为了创建异常警报对话框,我使用了 code.makery.ch
上的代码对于您的特定用例,您可以向 expandedProperty
添加另一个侦听器,这将覆盖 "details button" 显示的文本:
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 );
});
有关更常见的 hack,请参阅 Localizing JavaFx Controls。从那里您需要将以下键放入您的自定义属性文件:
// translate these
Dialog.detail.button.more = Show Details
Dialog.detail.button.less = Hide Details