Internationalization Qooxdoo-命令快捷方式未转换

Internationalization Qooxdoo-命令快捷方式未转换,internationalization,qooxdoo,Internationalization,Qooxdoo,如果我在操场上运行以下代码: var button1 = new qx.ui.form.Button("First Button", "icon/22/apps/internet-web-browser.png"); var doc = this.getRoot(); doc.add(button1, { left : 100, top : 50 }); button1.addListener("execute", function(e) { alert("Hello World!"); })

如果我在操场上运行以下代码:

var button1 = new qx.ui.form.Button("First Button", "icon/22/apps/internet-web-browser.png");
var doc = this.getRoot();
doc.add(button1, { left : 100, top  : 50 });
button1.addListener("execute", function(e) { alert("Hello World!"); });
button1.setToolTipText(new qx.ui.core.Command("Control+D").toString());
qx.locale.Manager.getInstance().setLocale("en");
按钮工具提示显示Ctrl+D

如果我将区域设置更改为“de”,工具提示仍然显示Ctrl+D。在第二次运行时,它显示正确的字符串Strg+D

如何在第一次运行时显示正确的字符串

一个更好的例子表明了我的问题是:

var doc = this.getRoot();
var button1 = new qx.ui.form.Button("Deutsch", "icon/22/apps/internet-web-browser.png");
doc.add(button1, { left : 100, top  : 50 });
button1.addListener("execute", function(e) { qx.locale.Manager.getInstance().setLocale("de"); });
button1.setToolTipText(new qx.ui.core.Command("Control+D").toString());

var button2 = new qx.ui.form.Button("English", "icon/22/apps/internet-web-browser.png");
doc.add(button2, { left : 200, top  : 50 });
button2.addListener("execute", function(e) { qx.locale.Manager.getInstance().setLocale("en"); });
button2.setToolTipText(new qx.ui.core.Command("Control+E").toString());
看看工具提示

这是一个bug还是我没有正确设置区域设置

/问候


Christian

您的两个代码片段都存在评估和排序的问题。首先,给定当前区域设置,
qx.ui.core.Command(“Control+D”).toString()
只返回一个普通字符串。之后,该值是“固定”的,不再自动更改。在第一个代码片段中,首先设置工具提示,然后更改区域设置。这意味着,在切换到“en”之前,工具提示将根据有效的语言环境进行设置。如果您随后重新运行代码段(我假定您正在使用游乐场),则将在新的区域设置下执行工具提示设置,工具提示将显示英文版本

在第二个代码段中,更改“执行”侦听器中的区域设置对工具提示没有任何影响,因为它的值已经“硬连接”了,使用代码求值时有效的任何区域设置(当按下其中一个按钮时,而不是)。当然,如果您按下其中一个按钮,然后在Playerd中重新运行代码,则新的区域设置将被拾取并显示在工具提示中

解决这个问题的一种方法是在“执行”侦听器中设置工具提示。
(这不是很明智,但我认为您可以从这一点开始工作)。

您的两个代码片段都存在评估和顺序的问题。首先,给定当前区域设置,
qx.ui.core.Command(“Control+D”).toString()
只返回一个普通字符串。之后,该值是“固定”的,不再自动更改。在第一个代码片段中,首先设置工具提示,然后更改区域设置。这意味着,在切换到“en”之前,工具提示将根据有效的语言环境进行设置。如果您随后重新运行代码段(我假定您正在使用游乐场),则将在新的区域设置下执行工具提示设置,工具提示将显示英文版本

在第二个代码段中,更改“执行”侦听器中的区域设置对工具提示没有任何影响,因为它的值已经“硬连接”了,使用代码求值时有效的任何区域设置(当按下其中一个按钮时,而不是)。当然,如果您按下其中一个按钮,然后在Playerd中重新运行代码,则新的区域设置将被拾取并显示在工具提示中

解决这个问题的一种方法是在“执行”侦听器中设置工具提示。
(这不是很明智,但我认为你可以从这开始工作)。

aaahh。。thx很多,当然字符串是固定的,不会每次都重新计算,有时它是简单的解决方案aahh。。thx很多,当然字符串是固定的,不会每次都重新计算,有时这是一个简单的解决方案