@qooxdoo/framework
Version:
The JS Framework for Coders
140 lines (122 loc) • 5.59 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2004-2008 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Sebastian Werner (wpbasti)
* Andreas Ecker (ecker)
* Fabian Jakobs (fjakobs)
************************************************************************ */
/**
* Static class, which contains functionality to localize the names of keyboard keys.
*/
qx.Class.define("qx.locale.Key",
{
/*
*****************************************************************************
STATICS
*****************************************************************************
*/
statics :
{
/**
* Return localized name of a key identifier
* {@link qx.event.type.KeySequence}
*
* @param size {String} format of the key identifier.
* Possible values: "short", "full"
* @param keyIdentifier {String} key identifier to translate {@link qx.event.type.KeySequence}
* @param locale {String} optional locale to be used
* @return {String} localized key name
*/
getKeyName : function(size, keyIdentifier, locale)
{
if (qx.core.Environment.get("qx.debug")) {
qx.core.Assert.assertInArray(size, ["short", "full"]);
}
var key = "key_" + size + "_" + keyIdentifier;
// Control is always named control on a mac and not Strg in German e.g.
if (qx.core.Environment.get("os.name") == "osx" && keyIdentifier == "Control") {
key += "_Mac";
}
var localizedKey = qx.locale.Manager.getInstance().translate(key, [], locale);
if (localizedKey == key) {
return qx.locale.Key._keyNames[key] || keyIdentifier;
} else {
return localizedKey;
}
}
},
/*
*****************************************************************************
DEFER
*****************************************************************************
*/
defer : function(statics)
{
var keyNames = {};
var Manager = qx.locale.Manager;
// TRANSLATION: short representation of key names
keyNames[Manager.marktr("key_short_Backspace")] = "Backspace";
keyNames[Manager.marktr("key_short_Tab")] = "Tab";
keyNames[Manager.marktr("key_short_Space")] = "Space";
keyNames[Manager.marktr("key_short_Enter")] = "Enter";
keyNames[Manager.marktr("key_short_Shift")] = "Shift";
keyNames[Manager.marktr("key_short_Control")] = "Ctrl";
keyNames[Manager.marktr("key_short_Control_Mac")] = "Ctrl";
keyNames[Manager.marktr("key_short_Alt")] = "Alt";
keyNames[Manager.marktr("key_short_CapsLock")] = "Caps";
keyNames[Manager.marktr("key_short_Meta")] = "Meta";
keyNames[Manager.marktr("key_short_Escape")] = "Esc";
keyNames[Manager.marktr("key_short_Left")] = "Left";
keyNames[Manager.marktr("key_short_Up")] = "Up";
keyNames[Manager.marktr("key_short_Right")] = "Right";
keyNames[Manager.marktr("key_short_Down")] = "Down";
keyNames[Manager.marktr("key_short_PageUp")] = "PgUp";
keyNames[Manager.marktr("key_short_PageDown")] = "PgDn";
keyNames[Manager.marktr("key_short_End")] = "End";
keyNames[Manager.marktr("key_short_Home")] = "Home";
keyNames[Manager.marktr("key_short_Insert")] = "Ins";
keyNames[Manager.marktr("key_short_Delete")] = "Del";
keyNames[Manager.marktr("key_short_NumLock")] = "Num";
keyNames[Manager.marktr("key_short_PrintScreen")] = "Print";
keyNames[Manager.marktr("key_short_Scroll")] = "Scroll";
keyNames[Manager.marktr("key_short_Pause")] = "Pause";
keyNames[Manager.marktr("key_short_Win")] = "Win";
keyNames[Manager.marktr("key_short_Apps")] = "Apps";
// TRANSLATION: full/long representation of key names
keyNames[Manager.marktr("key_full_Backspace")] = "Backspace";
keyNames[Manager.marktr("key_full_Tab")] = "Tabulator";
keyNames[Manager.marktr("key_full_Space")] = "Space";
keyNames[Manager.marktr("key_full_Enter")] = "Enter";
keyNames[Manager.marktr("key_full_Shift")] = "Shift";
keyNames[Manager.marktr("key_full_Control")] = "Control";
keyNames[Manager.marktr("key_full_Control_Mac")] = "Control";
keyNames[Manager.marktr("key_full_Alt")] = "Alt";
keyNames[Manager.marktr("key_full_CapsLock")] = "CapsLock";
keyNames[Manager.marktr("key_full_Meta")] = "Meta";
keyNames[Manager.marktr("key_full_Escape")] = "Escape";
keyNames[Manager.marktr("key_full_Left")] = "Left";
keyNames[Manager.marktr("key_full_Up")] = "Up";
keyNames[Manager.marktr("key_full_Right")] = "Right";
keyNames[Manager.marktr("key_full_Down")] = "Down";
keyNames[Manager.marktr("key_full_PageUp")] = "PageUp";
keyNames[Manager.marktr("key_full_PageDown")] = "PageDown";
keyNames[Manager.marktr("key_full_End")] = "End";
keyNames[Manager.marktr("key_full_Home")] = "Home";
keyNames[Manager.marktr("key_full_Insert")] = "Insert";
keyNames[Manager.marktr("key_full_Delete")] = "Delete";
keyNames[Manager.marktr("key_full_NumLock")] = "NumLock";
keyNames[Manager.marktr("key_full_PrintScreen")] = "PrintScreen";
keyNames[Manager.marktr("key_full_Scroll")] = "Scroll";
keyNames[Manager.marktr("key_full_Pause")] = "Pause";
keyNames[Manager.marktr("key_full_Win")] = "Win";
keyNames[Manager.marktr("key_full_Apps")] = "Apps";
// Save
statics._keyNames = keyNames;
}
});