Qooxdoo - 命令快捷方式不翻译

时间:2011-01-06 09:02:12

标签: 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!"); });
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());

查看工具提示。

这是一个错误还是我没有以正确的方式设置语言环境?

/亲切的问候

Christian

1 个答案:

答案 0 :(得分:1)

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

在第二个片段中,更改“execute”侦听器中的语言环境对工具提示没有影响,因为它的值已经使用在评估代码时生效的任何语言环境“硬连线”(并且<当按下其中一个按钮时,强>不!)。当然,如果您按下其中一个按钮,然后在Playground中重新运行代码,则会拾取新的区域设置并显示在工具提示中。

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

相关问题