implement all needed tr() for localization
* implement some pt-BR translations * remove legacy about module
This commit is contained in:
parent
ca0e1bd38b
commit
34091bc48e
|
@ -3,8 +3,9 @@ Client = {}
|
|||
function Client.reloadScripts()
|
||||
dofile '/otclientrc'
|
||||
reloadModules()
|
||||
TextMessage.displayEventAdvance('All modules and scripts were reloaded.')
|
||||
print('All modules and scripts were reloaded.')
|
||||
local message = tr('All modules and scripts were reloaded.')
|
||||
TextMessage.displayEventAdvance(message)
|
||||
print(message)
|
||||
end
|
||||
|
||||
function Client.init()
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
About = {}
|
||||
|
||||
-- private variables
|
||||
local aboutButton
|
||||
local aboutWindow
|
||||
|
||||
-- public functions
|
||||
function About.init()
|
||||
aboutButton = TopMenu.addRightButton('aboutButton', 'About', 'about.png', About.show)
|
||||
aboutWindow = displayUI('about.otui')
|
||||
aboutWindow:hide()
|
||||
end
|
||||
|
||||
function About.terminate()
|
||||
aboutButton:destroy()
|
||||
aboutButton = nil
|
||||
aboutWindow:destroy()
|
||||
aboutWindow = nil
|
||||
About = nil
|
||||
end
|
||||
|
||||
function About.show()
|
||||
aboutWindow:show()
|
||||
aboutWindow:raise()
|
||||
aboutWindow:focus()
|
||||
end
|
||||
|
||||
function About.hide()
|
||||
aboutWindow:hide()
|
||||
end
|
||||
|
||||
function About.openWebpage()
|
||||
displayErrorBox("Error", "Not implemented yet")
|
||||
end
|
|
@ -1,15 +0,0 @@
|
|||
Module
|
||||
name: client_about
|
||||
description: Create the about window
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
|
||||
dependencies:
|
||||
- client_topmenu
|
||||
|
||||
@onLoad: |
|
||||
dofile 'about'
|
||||
About.init()
|
||||
|
||||
@onUnload: |
|
||||
About.terminate()
|
|
@ -1,58 +0,0 @@
|
|||
MainWindow
|
||||
id: about
|
||||
text: Info
|
||||
size: 244 221
|
||||
|
||||
@onEnter: About.hide()
|
||||
@onEscape: About.hide()
|
||||
|
||||
FlatPanel
|
||||
size: 208 129
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
|
||||
Label
|
||||
text-align: center
|
||||
text: |-
|
||||
OTClient
|
||||
Version 0.4.0
|
||||
Created by edubart
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.top: parent.top
|
||||
margin-top: 20
|
||||
|
||||
HorizontalSeparator
|
||||
size: 190 2
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
margin-top: 83
|
||||
margin-left: 9
|
||||
|
||||
Label
|
||||
text: Official Website
|
||||
anchors.left: parent.left
|
||||
anchors.bottom: parent.bottom
|
||||
margin-bottom: 14
|
||||
margin-left: 9
|
||||
|
||||
Button
|
||||
text: Github Page
|
||||
size: 88 24
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
margin-bottom: 9
|
||||
margin-right: 9
|
||||
@onClick: About.openWebpage()
|
||||
|
||||
HorizontalSeparator
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: prev.bottom
|
||||
margin-top: 12
|
||||
|
||||
Button
|
||||
text: Ok
|
||||
size: 46 24
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
@onClick: About.hide()
|
Binary file not shown.
Before Width: | Height: | Size: 763 B |
|
@ -25,14 +25,14 @@ local function tryLogin(charInfo, tries)
|
|||
|
||||
if tries > 4 then
|
||||
CharacterList.destroyLoadBox()
|
||||
displayErrorBox('Error', 'Could not logout.')
|
||||
displayErrorBox(tr('Error'), tr('Unable to logout.'))
|
||||
return
|
||||
end
|
||||
|
||||
if g_game.isOnline() then
|
||||
g_game.safeLogout()
|
||||
if tries == 1 then
|
||||
loadBox = displayCancelBox('Please wait', 'Loggin out...')
|
||||
loadBox = displayCancelBox(tr('Please wait'), tr('Loggin out...'))
|
||||
end
|
||||
scheduleEvent(function() tryLogin(charInfo, tries+1) end, 250)
|
||||
return
|
||||
|
@ -42,7 +42,7 @@ local function tryLogin(charInfo, tries)
|
|||
|
||||
g_game.loginWorld(EnterGame.account, EnterGame.password, charInfo.worldName, charInfo.worldHost, charInfo.worldPort, charInfo.characterName)
|
||||
|
||||
loadBox = displayCancelBox('Please wait', 'Connecting to game server...')
|
||||
loadBox = displayCancelBox(tr('Please wait'), tr('Connecting to game server...'))
|
||||
connect(loadBox, { onCancel = function()
|
||||
loadBox = nil
|
||||
g_game.cancelLogin()
|
||||
|
@ -55,7 +55,7 @@ end
|
|||
|
||||
function onGameLoginError(message)
|
||||
CharacterList.destroyLoadBox()
|
||||
errorBox = displayErrorBox("Login Error", "Login error: " .. message)
|
||||
errorBox = displayErrorBox(tr("Login Error"), message)
|
||||
errorBox.onOk = function()
|
||||
errorBox = nil
|
||||
CharacterList.showAgain()
|
||||
|
@ -64,7 +64,7 @@ end
|
|||
|
||||
function onGameConnectionError(message)
|
||||
CharacterList.destroyLoadBox()
|
||||
errorBox = displayErrorBox("Login Error", "Connection error: " .. message)
|
||||
errorBox = displayErrorBox(tr("Login Error"), message)
|
||||
errorBox.onOk = function()
|
||||
errorBox = nil
|
||||
CharacterList.showAgain()
|
||||
|
@ -128,7 +128,7 @@ function CharacterList.create(characters, premDays)
|
|||
characterList:focusChild(focusLabel, ActiveFocusReason)
|
||||
|
||||
if premDays > 0 then
|
||||
accountStatusLabel:setText("Account Status:\nPremium Account (" .. premDays .. ' days left)')
|
||||
accountStatusLabel:setText(tr("Account Status:\nPremium Account (%s) days left", premDays))
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -173,7 +173,7 @@ function CharacterList.doLogin()
|
|||
CharacterList.hide()
|
||||
tryLogin(charInfo)
|
||||
else
|
||||
displayErrorBox('Error', 'You must select a character to login!')
|
||||
displayErrorBox(tr('Error'), tr('You must select a character to login!'))
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ MainWindow
|
|||
//CheckBox
|
||||
// id: charAutoLoginBox
|
||||
// !text: tr('Auto login')
|
||||
// tooltip: Auto login selected character on next charlist load
|
||||
// !tooltip: tr('Auto login selected character on next charlist load')
|
||||
// anchors.left: parent.left
|
||||
// anchors.right: parent.right
|
||||
// anchors.bottom: next.top
|
||||
|
|
|
@ -24,7 +24,7 @@ local function onError(protocol, message, connectionError)
|
|||
if not connectionError then
|
||||
clearAccountFields()
|
||||
end
|
||||
local errorBox = displayErrorBox('Login Error', message)
|
||||
local errorBox = displayErrorBox(tr('Login Error'), message)
|
||||
connect(errorBox, { onOk = EnterGame.show })
|
||||
end
|
||||
|
||||
|
@ -51,7 +51,7 @@ local function onCharacterList(protocol, characters, premDays)
|
|||
local lastMotdNumber = Settings.getNumber("motd")
|
||||
if motdNumber and motdNumber ~= lastMotdNumber then
|
||||
Settings.set("motd", motdNumber)
|
||||
local motdBox = displayInfoBox("Message of the day", motdMessage)
|
||||
local motdBox = displayInfoBox(tr('Message of the day'), motdMessage)
|
||||
connect(motdBox, { onOk = CharacterList.show })
|
||||
CharacterList.hide()
|
||||
end
|
||||
|
@ -60,8 +60,8 @@ end
|
|||
-- public functions
|
||||
function EnterGame.init()
|
||||
enterGame = displayUI('entergame.otui')
|
||||
enterGameButton = TopMenu.addLeftButton('enterGameButton', 'Login (Ctrl + G)', 'login.png', EnterGame.openWindow)
|
||||
motdButton = TopMenu.addLeftButton('motdButton', 'Message of the day', 'motd.png', EnterGame.displayMotd)
|
||||
enterGameButton = TopMenu.addLeftButton('enterGameButton', tr('Login') .. ' (Ctrl + G)', 'login.png', EnterGame.openWindow)
|
||||
motdButton = TopMenu.addLeftButton('motdButton', tr('Message of the day'), 'motd.png', EnterGame.displayMotd)
|
||||
motdButton:hide()
|
||||
Keyboard.bindKeyDown('Ctrl+G', EnterGame.openWindow)
|
||||
|
||||
|
@ -133,7 +133,7 @@ function EnterGame.doLogin()
|
|||
protocolLogin.onMotd = onMotd
|
||||
protocolLogin.onCharacterList = onCharacterList
|
||||
|
||||
loadBox = displayCancelBox('Please wait', 'Connecting to login server...')
|
||||
loadBox = displayCancelBox(tr('Please wait'), tr('Connecting to login server...'))
|
||||
connect(loadBox, { onCancel = function(msgbox)
|
||||
loadBox = nil
|
||||
protocolLogin:cancelLogin()
|
||||
|
@ -144,5 +144,5 @@ function EnterGame.doLogin()
|
|||
end
|
||||
|
||||
function EnterGame.displayMotd()
|
||||
displayInfoBox('Message of the day', motdMessage)
|
||||
displayInfoBox(tr('Message of the day'), motdMessage)
|
||||
end
|
||||
|
|
|
@ -12,12 +12,12 @@ function Locales.init()
|
|||
Locales.installLocales('locales')
|
||||
|
||||
local userLocaleName = Settings.get('locale')
|
||||
if not userLocaleName or not Locales.setLocale(userLocaleName) then
|
||||
print('Locale ' .. userLocaleName .. ' is not loaded. Using default. ' .. defaultLocaleName)
|
||||
if not Locales.setLocale(defaultLocaleName) then
|
||||
fatal('Default locale could not be loaded. Re-install the program.')
|
||||
return
|
||||
end
|
||||
if userLocaleName then
|
||||
print('Using configurated locale: ' .. userLocaleName)
|
||||
Locales.setLocale(userLocaleName)
|
||||
else
|
||||
print('Using default locale: ' .. defaultLocaleName)
|
||||
Locales.setLocale(defaultLocaleName)
|
||||
Settings.set('locale', defaultLocaleName)
|
||||
end
|
||||
|
||||
|
@ -33,14 +33,8 @@ function Locales.terminate()
|
|||
end
|
||||
|
||||
function Locales.installLocale(locale)
|
||||
if not locale then
|
||||
print('Coult not install locale.')
|
||||
return false
|
||||
end
|
||||
|
||||
if not locale.name then
|
||||
printf('Coult not install locale.')
|
||||
return false
|
||||
if not locale or not locale.name then
|
||||
error('Unable to install locale.')
|
||||
end
|
||||
|
||||
local installedLocale = installedLocales[locale.name]
|
||||
|
@ -62,13 +56,10 @@ end
|
|||
|
||||
function Locales.setLocale(name)
|
||||
local locale = installedLocales[name]
|
||||
if locale then
|
||||
currentLocale = locale
|
||||
return true
|
||||
if not locale then
|
||||
error("Locale " .. name .. ' does not exist.')
|
||||
end
|
||||
|
||||
print("Locale " .. name .. ' does not exist.')
|
||||
return false
|
||||
currentLocale = locale
|
||||
end
|
||||
|
||||
function tr(text, ...)
|
||||
|
@ -86,11 +77,13 @@ function tr(text, ...)
|
|||
return out:reverse()
|
||||
elseif tostring(text) then
|
||||
local translation = currentLocale.translation[text]
|
||||
if translation then
|
||||
return string.format(translation, ...)
|
||||
elseif currentLocale.name ~= defaultLocaleName then
|
||||
print('WARNING: \"' .. text .. '\" could not be translated.')
|
||||
if not translation then
|
||||
if currentLocale.name ~= defaultLocaleName then
|
||||
warning('Unable to translate: \"' .. text .. '\"')
|
||||
end
|
||||
translation = text
|
||||
end
|
||||
return string.format(translation, ...)
|
||||
end
|
||||
end
|
||||
return text
|
||||
|
|
|
@ -1,26 +1,199 @@
|
|||
-- to find all possible translations in the source code use the following command:
|
||||
-- find \( -name '*.lua' -o -name '*.otui' \) -exec grep -oE "tr\\('(\\\\'|[^'])*'" {} \; -exec grep -oE "tr\\(\"(\\\\\"|[^\"])*\nil {} \; | sort | uniq | sed "s/^tr(.\(.*\).$/[\"\1\"] = nil,/"
|
||||
|
||||
locale = {
|
||||
name = 'pt-br',
|
||||
name = 'pt-br',
|
||||
|
||||
-- As traduções devem vir sempre em ordem alfabética.
|
||||
translation = {
|
||||
['Account name'] = 'Nome da conta',
|
||||
['Account Status:\nFree Account'] = 'Estado da Conta:\nGrátis',
|
||||
['Auto login'] = 'Entrar automaticamente',
|
||||
['Cancel'] = 'Cancelar',
|
||||
['Character List'] = 'Lista de Personagens',
|
||||
['Enter Game'] = 'Entrar no Jogo',
|
||||
['Make sure that your client uses\nthe correct game protocol version'] = 'Tenha certeza de que o cliente usa\na versão correta do protocolo do jogo',
|
||||
['Ok'] = 'Ok',
|
||||
['Open charlist automatically when starting otclient'] = 'Abrir a lista de personagens automaticamente ao iniciar o otclient',
|
||||
['Options'] = 'Opções',
|
||||
['Password'] = 'Senha',
|
||||
['Port'] = 'Porta',
|
||||
['Remember account and password when starts otclient'] = 'Lembrar conta e senha ao iniciar o otclient',
|
||||
['Remember password'] = 'Lembrar senha',
|
||||
['Server'] = 'Servidor'
|
||||
}
|
||||
-- As traduções devem vir sempre em ordem alfabética.
|
||||
translation = {
|
||||
["Account name"] = "Nome da conta",
|
||||
["Account Status:\nFree Account"] = "Estado da conta:\nGratís",
|
||||
["Account Status:\nPremium Account (%s) days left"] = "Estado da conta:\nConta premium (%s) dias faltando",
|
||||
["Add"] = "Adicionar",
|
||||
["Add new VIP"] = "Adicionar nova VIP",
|
||||
["Addon 1"] = "Addon 1",
|
||||
["Addon 2"] = "Addon 2",
|
||||
["Addon 3"] = "Addon 3",
|
||||
["Add to VIP list"] = "Adicionar a lista VIP",
|
||||
["Adjust volume"] = "Ajustar volume",
|
||||
["All modules and scripts were reloaded."] = "Todos modules e scripts foram recarregados.",
|
||||
["Amount:"] = "Quantidade:",
|
||||
["Attack"] = "Atacar",
|
||||
["Author"] = "Autor",
|
||||
["Autoload"] = "Carregar automaticamente",
|
||||
["Autoload priority"] = "Prioridade de carregamento",
|
||||
["Auto login"] = "Entrar automaticamente",
|
||||
["Auto login selected character on next charlist load"] = "Entrar automaticamente com o personagem quando reabrir a lista de personagens",
|
||||
["Axe Fighting"] = "Machado",
|
||||
["Battle"] = "Batalha",
|
||||
["Button Assign"] = "Selecionar botão",
|
||||
["Buy"] = "Comprar",
|
||||
["Buy no backpack"] = "Comprar na backpack",
|
||||
["Buy with backpack"] = "Comprar com backpack",
|
||||
["Cancel"] = "Cancelar",
|
||||
["Capacity:"] = "Capacidade:",
|
||||
["Capacity"] = "Capacidade",
|
||||
["Channels"] = "Canais",
|
||||
["Character List"] = "Lista de personagens",
|
||||
["Classic control"] = "Controle clássico",
|
||||
["Clear object"] = "Limpar objeto",
|
||||
["Close"] = "Fechar",
|
||||
["Close this channel"] = "Fechar esse canal",
|
||||
["Club Fighting"] = "Porrete",
|
||||
["Combat Controls"] = nil,
|
||||
["Connecting to game server..."] = "Conectando no servidor do jogo...",
|
||||
["Connecting to login server..."] = "Conectando no servidor de autenticação...",
|
||||
["Consider capacity"] = "Considerar capacidade",
|
||||
["Consider equipped"] = "Considerar equipado",
|
||||
["Copy Name"] = "Copiar Nome",
|
||||
["Current hotkeys:"] = "Atalhos atuais",
|
||||
["Current hotkey to add: %s"] = "Atalho atual para adicionar: %s",
|
||||
["Default"] = "Default",
|
||||
["Description"] = "Descrição",
|
||||
["Detail"] = "Detalhe",
|
||||
["Disable Shared Experience"] = "Desativar experiência compartilhada",
|
||||
["Distance Fighting"] = "Flecha",
|
||||
["Edit hotkey text:"] = "Editar texto do atalho",
|
||||
["Edit Text"] = "Editar Texto",
|
||||
["Enable Shared Experience"] = "Ativar experiência compartilhada",
|
||||
["Enable vertical synchronization"] = "Ativar sincronização vertical",
|
||||
["Enter Game"] = "Entrar no jogo",
|
||||
["Error"] = "Erro",
|
||||
["Exclude from private chat"] = "Excluir do canal privado",
|
||||
["Experience"] = "Experiência",
|
||||
["Fishing"] = "Pesca",
|
||||
["Fist Fighting"] = "Porrada",
|
||||
["Follow"] = "Seguir",
|
||||
["Frame rate limit"] = "Limite de FPS",
|
||||
["Fullscreen"] = "Tela cheia",
|
||||
["Head"] = "Cabeça",
|
||||
["Health Bar"] = "Barra de Vida",
|
||||
["Hide monsters"] = "Esconder montros",
|
||||
["Hide non-skull players"] = "Esconder jogadores sem caveira",
|
||||
["Hide Npcs"] = "Esconder NPCs",
|
||||
["Hide party members"] = "Esconder membros do grupo",
|
||||
["Hide players"] = "Esconder jogadores",
|
||||
["Hit Points"] = "Vida",
|
||||
["Hotkeys"] = "Atalhos",
|
||||
["Ignore capacity"] = "Ignorar capacidade",
|
||||
["Ignore equipped"] = "Ignorar equipado",
|
||||
["Inventory"] = "Inventário",
|
||||
["Invite to Party"] = "Convidar para o grupo",
|
||||
["Invite to private chat"] = "Convidar para canal privado",
|
||||
["Join %s\'s Party"] = "Entrar no grupo do %s",
|
||||
["Leave Party"] = "Sair do grupo",
|
||||
["Level"] = "Nível",
|
||||
["Limits FPS to 60"] = "Limita o FPS para 60",
|
||||
["List of items that you're able to buy"] = "Listar itens que você não pode comprar",
|
||||
["List of items that you're able to sell"] = "Listar itens que você pode comprar",
|
||||
["Load"] = "Carregar",
|
||||
["Loggin out..."] = "Saindo...",
|
||||
["Login"] = "Entrar",
|
||||
["Login Error"] = "Erro de Autenticação",
|
||||
["Look"] = "Olhar",
|
||||
["Magic Level"] = "Nível Mágico",
|
||||
["Make sure that your client uses\nthe correct game protocol version"] = "Tenha certeza que o seu cliente use\no mesmo protocolo do server do jogo",
|
||||
["Mana"] = "Mana",
|
||||
["Manage hotkeys:"] = "Configurar atalhos:",
|
||||
["Message of the day"] = "Mensagem do dia",
|
||||
["Message to %s"] = "Mandar mensagem para %s",
|
||||
["Minimap"] = "Minimapa",
|
||||
["Module Manager"] = "Gerenciador de Módulos",
|
||||
["Module name"] = "Nomo do módulo",
|
||||
["Money:"] = "Dinheiro:",
|
||||
["Move Stackable Item"] = "Move item contável",
|
||||
["Move up"] = "Mover para cima",
|
||||
["Name:"] = "Nome:",
|
||||
["NPC Trade"] = "Troca com NPC",
|
||||
["Ok"] = "Ok",
|
||||
["Open"] = "Abrir",
|
||||
["Open a private message channel:"] = "Abrir um canal privado:",
|
||||
["Open charlist automatically when starting otclient"] = "Abrir lista de personágens",
|
||||
["Open in new window"] = nil,
|
||||
["Open new channel"] = nil,
|
||||
["Options"] = nil,
|
||||
["Outfit Name"] = nil,
|
||||
["Pass Leadership to %s"] = nil,
|
||||
["Password"] = nil,
|
||||
["Please enter a character name:"] = nil,
|
||||
["Please, press the key you wish to add onto your hotkeys manager"] = nil,
|
||||
["Please wait"] = nil,
|
||||
["Port"] = nil,
|
||||
["Price:"] = nil,
|
||||
["Primary"] = nil,
|
||||
["Quantity:"] = nil,
|
||||
["Refresh"] = nil,
|
||||
["Reload All"] = nil,
|
||||
["Remember account and password when starts otclient"] = nil,
|
||||
["Remember password"] = nil,
|
||||
["Remove"] = nil,
|
||||
["Remove %s"] = nil,
|
||||
["Revoke %s\'s Invitation"] = nil,
|
||||
["Rotate"] = nil,
|
||||
["Search:"] = nil,
|
||||
["Secondary"] = nil,
|
||||
["Select object"] = nil,
|
||||
["Select Outfit"] = nil,
|
||||
["Sell"] = nil,
|
||||
["Send automatically"] = nil,
|
||||
["Server"] = nil,
|
||||
["Server Log"] = nil,
|
||||
["Set Outfit"] = nil,
|
||||
["Shielding"] = nil,
|
||||
["Show all items"] = nil,
|
||||
["Show event messages in console"] = nil,
|
||||
["Show frame rate"] = nil,
|
||||
["Show info messages in console"] = nil,
|
||||
["Show levels in console"] = nil,
|
||||
["Show only holding items"] = nil,
|
||||
["Show private messages in console"] = nil,
|
||||
["Show status messages in console"] = nil,
|
||||
["Show timestamps in console"] = nil,
|
||||
["Skills"] = nil,
|
||||
["Soul Points"] = nil,
|
||||
["Stamina"] = nil,
|
||||
["Stop Attack"] = nil,
|
||||
["Stop Follow"] = nil,
|
||||
["%s: (use object)"] = nil,
|
||||
["%s: (use object on target)"] = nil,
|
||||
["%s: (use object on yourself)"] = nil,
|
||||
["%s: (use object with crosshair)"] = nil,
|
||||
["Sword Fighting"] = nil,
|
||||
["Terminal"] = nil,
|
||||
["There is no way."] = nil,
|
||||
["Trade with ..."] = nil,
|
||||
["Unable to logout."] = nil,
|
||||
["Unload"] = nil,
|
||||
["Use"] = nil,
|
||||
["Use on target"] = nil,
|
||||
["Use on yourself"] = nil,
|
||||
["Use with ..."] = nil,
|
||||
["Version"] = nil,
|
||||
["VIP list"] = nil,
|
||||
["VIP List"] = nil,
|
||||
["Website"] = nil,
|
||||
["Weight:"] = nil,
|
||||
["With crosshair"] = nil,
|
||||
["You are burning"] = nil,
|
||||
["You are cursed"] = nil,
|
||||
["You are dazzled"] = nil,
|
||||
["You are drowing"] = nil,
|
||||
["You are electrified"] = nil,
|
||||
["You are freezing"] = nil,
|
||||
["You are hasted"] = nil,
|
||||
["You are paralysed"] = nil,
|
||||
["You are poisoned"] = nil,
|
||||
["You are protected by a magic shield"] = nil,
|
||||
["You are strengthened"] = nil,
|
||||
["You are within a protection zone"] = nil,
|
||||
["You have %s percent"] = nil,
|
||||
["You have %s percent to go"] = nil,
|
||||
["You may not logout during a fight"] = nil,
|
||||
["You may not logout or enter a protection zone"] = nil,
|
||||
["You must select a character to login!"] = nil,
|
||||
}
|
||||
|
||||
-- Adicionar informações de números. 1.000 100,00 1.000,00 etc.
|
||||
-- Adicionar informações de números. 1.000 100,00 1.000,00 etc.
|
||||
}
|
||||
|
||||
Locales.installLocale(locale)
|
|
@ -16,7 +16,7 @@ function ModuleManager.init()
|
|||
Keyboard.bindKeyPress('Up', function() moduleList:focusPreviousChild(KeyboardFocusReason) end, moduleManagerWindow)
|
||||
Keyboard.bindKeyPress('Down', function() moduleList:focusNextChild(KeyboardFocusReason) end, moduleManagerWindow)
|
||||
|
||||
moduleManagerButton = TopMenu.addLeftButton('moduleManagerButton', 'Module manager', 'modulemanager.png', ModuleManager.toggle)
|
||||
moduleManagerButton = TopMenu.addLeftButton('moduleManagerButton', tr('Module Manager'), 'modulemanager.png', ModuleManager.toggle)
|
||||
|
||||
-- refresh modules only after all modules are loaded
|
||||
addEvent(ModuleManager.listModules)
|
||||
|
|
|
@ -34,7 +34,7 @@ ModuleValueLabel < UILabel
|
|||
MainWindow
|
||||
id: moduleManagerWindow
|
||||
size: 480 450
|
||||
text: Module Manager
|
||||
!text: tr('Module Manager')
|
||||
|
||||
@onEscape: ModuleManager.hide()
|
||||
|
||||
|
@ -54,7 +54,7 @@ MainWindow
|
|||
anchors.left: moduleList.left
|
||||
margin-top: 8
|
||||
width: 80
|
||||
text: Refresh
|
||||
!text: tr('Refresh')
|
||||
@onClick: ModuleManager.refreshModules()
|
||||
|
||||
Button
|
||||
|
@ -63,7 +63,7 @@ MainWindow
|
|||
anchors.right: moduleList.right
|
||||
margin-top: 8
|
||||
width: 80
|
||||
text: Reload All
|
||||
!text: tr('Reload All')
|
||||
@onClick: ModuleManager.reloadAllModules()
|
||||
|
||||
Panel
|
||||
|
@ -76,40 +76,40 @@ MainWindow
|
|||
height: 265
|
||||
|
||||
ModuleInfoLabel
|
||||
text: Module name
|
||||
!text: tr('Module name')
|
||||
ModuleValueLabel
|
||||
id: moduleName
|
||||
|
||||
ModuleInfoLabel
|
||||
text: Description
|
||||
!text: tr('Description')
|
||||
ModuleValueLabel
|
||||
id: moduleDescription
|
||||
height: 100
|
||||
text-wrap: true
|
||||
|
||||
//ModuleInfoLabel
|
||||
// text: Autoload
|
||||
// !text: tr('Autoload')
|
||||
//ModuleValueLabel
|
||||
// id: moduleAutoload
|
||||
|
||||
//ModuleInfoLabel
|
||||
// text: Autoload priority
|
||||
// !text: tr('Autoload priority')
|
||||
//ModuleValueLabel
|
||||
// id: moduleLoadPriority
|
||||
// text: 1000
|
||||
|
||||
ModuleInfoLabel
|
||||
text: Author
|
||||
!text: tr('Author')
|
||||
ModuleValueLabel
|
||||
id: moduleAuthor
|
||||
|
||||
ModuleInfoLabel
|
||||
text: Website
|
||||
!text: tr('Website')
|
||||
ModuleValueLabel
|
||||
id: moduleWebsite
|
||||
|
||||
ModuleInfoLabel
|
||||
text: Version
|
||||
!text: tr('Version')
|
||||
ModuleValueLabel
|
||||
id: moduleVersion
|
||||
|
||||
|
@ -118,7 +118,7 @@ MainWindow
|
|||
anchors.top: moduleInfo.bottom
|
||||
anchors.left: moduleInfo.left
|
||||
margin-top: 8
|
||||
text: Load
|
||||
!text: tr('Load')
|
||||
enabled: false
|
||||
@onClick: ModuleManager.reloadCurrentModule()
|
||||
|
||||
|
@ -128,7 +128,7 @@ MainWindow
|
|||
anchors.right: moduleInfo.right
|
||||
margin-left: 10
|
||||
margin-top: 8
|
||||
text: Unload
|
||||
!text: tr('Unload')
|
||||
enabled: false
|
||||
@onClick: ModuleManager.unloadCurrentModule()
|
||||
|
||||
|
@ -136,7 +136,7 @@ MainWindow
|
|||
id: closeButton
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.right: parent.right
|
||||
text: Close
|
||||
!text: tr('Close')
|
||||
width: 60
|
||||
@onClick: ModuleManager.hide()
|
||||
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
Panel
|
||||
OptionCheckBox
|
||||
id: classicControl
|
||||
text: Classic control
|
||||
!text: tr('Classic control')
|
||||
|
||||
OptionCheckBox
|
||||
id: showInfoMessagesInConsole
|
||||
text: Show info messages in console
|
||||
!text: tr('Show info messages in console')
|
||||
|
||||
OptionCheckBox
|
||||
id: showEventMessagesInConsole
|
||||
text: Show event messages in console
|
||||
!text: tr('Show event messages in console')
|
||||
|
||||
OptionCheckBox
|
||||
id: showStatusMessagesInConsole
|
||||
text: Show status messages in console
|
||||
!text: tr('Show status messages in console')
|
||||
|
||||
OptionCheckBox
|
||||
id: showTimestampsInConsole
|
||||
text: Show timestamps in console
|
||||
!text: tr('Show timestamps in console')
|
||||
|
||||
OptionCheckBox
|
||||
id: showLevelsInConsole
|
||||
text: Show levels in console
|
||||
!text: tr('Show levels in console')
|
||||
|
||||
OptionCheckBox
|
||||
id: showPrivateMessagesInConsole
|
||||
text: Show private messages in console
|
||||
!text: tr('Show private messages in console')
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
Panel
|
||||
OptionCheckBox
|
||||
id: vsync
|
||||
text: Enable vertical synchronization
|
||||
tooltip: Limits FPS to 60
|
||||
!text: tr('Enable vertical synchronization')
|
||||
!tooltip: tr('Limits FPS to 60')
|
||||
|
||||
OptionCheckBox
|
||||
id: showfps
|
||||
text: Show frame rate
|
||||
!text: tr('Show frame rate')
|
||||
|
||||
OptionCheckBox
|
||||
id: fullscreen
|
||||
text: Fullscreen
|
||||
!text: tr('Fullscreen')
|
||||
|
||||
Label
|
||||
text: Frame rate limit
|
||||
!text: tr('Frame rate limit')
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: prev.bottom
|
||||
|
|
|
@ -28,7 +28,7 @@ function Options.init()
|
|||
|
||||
optionsWindow = displayUI('options.otui')
|
||||
optionsWindow:hide()
|
||||
optionsButton = TopMenu.addLeftButton('optionsButton', tr('Options') .. ' (Ctrl+O)', 'options.png', Options.toggle)
|
||||
optionsButton = TopMenu.addLeftButton('optionsButton', tr('Options'), 'options.png', Options.toggle)
|
||||
optionsTabBar = optionsWindow:getChildById('optionsTabBar')
|
||||
optionsTabBar:setContentWidget(optionsWindow:getChildById('optionsTabContent'))
|
||||
optionsTabBar:addTab('General', loadUI('general.otui'))
|
||||
|
@ -37,6 +37,7 @@ end
|
|||
|
||||
function Options.terminate()
|
||||
Keyboard.unbindKeyDown('Ctrl+P')
|
||||
Keyboard.unbindKeyDown('Ctrl+F')
|
||||
optionsWindow:destroy()
|
||||
optionsWindow = nil
|
||||
optionsButton:destroy()
|
||||
|
@ -63,10 +64,6 @@ function Options.hide()
|
|||
optionsWindow:hide()
|
||||
end
|
||||
|
||||
function Options.openWebpage()
|
||||
displayErrorBox("Error", "Not implemented yet")
|
||||
end
|
||||
|
||||
function Options.toggleOption(key)
|
||||
Options.setOption(key, not Options.getOption(key))
|
||||
end
|
||||
|
|
|
@ -16,7 +16,7 @@ OptionCheckBox < CheckBox
|
|||
|
||||
MainWindow
|
||||
id: optionsWindow
|
||||
text: Options
|
||||
!text: tr('Options')
|
||||
size: 286 230
|
||||
|
||||
@onEnter: Options.hide()
|
||||
|
@ -37,7 +37,7 @@ MainWindow
|
|||
margin-top: 10
|
||||
|
||||
Button
|
||||
text: Ok
|
||||
!text: tr('Ok')
|
||||
width: 64
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
|
|
|
@ -127,7 +127,7 @@ function Terminal.init()
|
|||
end
|
||||
end
|
||||
|
||||
terminalButton = TopMenu.addLeftButton('terminalButton', 'Terminal (Ctrl + T)', 'terminal.png', Terminal.toggle)
|
||||
terminalButton = TopMenu.addLeftButton('terminalButton', tr('Terminal') .. ' (Ctrl + T)', 'terminal.png', Terminal.toggle)
|
||||
Keyboard.bindKeyDown('Ctrl+T', Terminal.toggle)
|
||||
|
||||
commandHistory = Settings.getList('terminal-history')
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
function print(...)
|
||||
local msg = ""
|
||||
for i,v in ipairs(arg) do
|
||||
for i,v in ipairs({...}) do
|
||||
msg = msg .. tostring(v) .. "\t"
|
||||
end
|
||||
g_logger.log(LogInfo, msg)
|
||||
end
|
||||
|
||||
function warning(msg)
|
||||
g_logger.log(LogWarning, msg)
|
||||
end
|
||||
|
||||
function fatal(msg)
|
||||
g_logger.log(LogFatal, msg)
|
||||
end
|
||||
|
|
|
@ -161,40 +161,40 @@ function GameInterface.createThingMenu(menuPosition, lookThing, useThing, creatu
|
|||
local menu = createWidget('PopupMenu')
|
||||
|
||||
if lookThing then
|
||||
menu:addOption('Look', function() g_game.look(lookThing) end)
|
||||
menu:addOption(tr('Look'), function() g_game.look(lookThing) end)
|
||||
end
|
||||
|
||||
if useThing then
|
||||
if useThing:isContainer() then
|
||||
if useThing:getParentContainer() then
|
||||
menu:addOption('Open', function() g_game.open(useThing, useThing:getParentContainer()) end)
|
||||
menu:addOption('Open in new window', function() g_game.open(useThing, nil) end)
|
||||
menu:addOption(tr('Open'), function() g_game.open(useThing, useThing:getParentContainer()) end)
|
||||
menu:addOption(tr('Open in new window'), function() g_game.open(useThing, nil) end)
|
||||
else
|
||||
menu:addOption('Open', function() g_game.open(useThing, nil) end)
|
||||
menu:addOption(tr('Open'), function() g_game.open(useThing, nil) end)
|
||||
end
|
||||
else
|
||||
if useThing:isMultiUse() then
|
||||
menu:addOption('Use with ...', function() GameInterface.startUseWith(useThing) end)
|
||||
menu:addOption(tr('Use with ...'), function() GameInterface.startUseWith(useThing) end)
|
||||
else
|
||||
menu:addOption('Use', function() g_game.use(useThing) end)
|
||||
menu:addOption(tr('Use'), function() g_game.use(useThing) end)
|
||||
end
|
||||
end
|
||||
|
||||
if useThing:isRotateable() then
|
||||
menu:addOption('Rotate', function() g_game.rotate(useThing) end)
|
||||
menu:addOption(tr('Rotate'), function() g_game.rotate(useThing) end)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
if lookThing and not lookThing:asCreature() and not lookThing:isNotMoveable() and lookThing:isPickupable() then
|
||||
menu:addSeparator()
|
||||
menu:addOption('Trade with ...', function() GameInterface.startTradeWith(lookThing) end)
|
||||
menu:addOption(tr('Trade with ...'), function() GameInterface.startTradeWith(lookThing) end)
|
||||
end
|
||||
|
||||
if lookThing then
|
||||
local parentContainer = lookThing:getParentContainer()
|
||||
if parentContainer and parentContainer:hasParent() then
|
||||
menu:addOption('Move up', function() g_game.moveToParentContainer(lookThing, lookThing:getCount()) end)
|
||||
menu:addOption(tr('Move up'), function() g_game.moveToParentContainer(lookThing, lookThing:getCount()) end)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -202,64 +202,64 @@ function GameInterface.createThingMenu(menuPosition, lookThing, useThing, creatu
|
|||
menu:addSeparator()
|
||||
|
||||
if creatureThing:asLocalPlayer() then
|
||||
menu:addOption('Set Outfit', function() g_game.requestOutfit() end)
|
||||
menu:addOption(tr('Set Outfit'), function() g_game.requestOutfit() end)
|
||||
|
||||
if creatureThing:isPartyMember() --[[and not fighting]] then
|
||||
if creatureThing:isPartyLeader() then
|
||||
if creatureThing:isPartySharedExperienceActive() then
|
||||
menu:addOption('Disable Shared Experience', function() g_game.partyShareExperience(false) end)
|
||||
menu:addOption(tr('Disable Shared Experience'), function() g_game.partyShareExperience(false) end)
|
||||
else
|
||||
menu:addOption('Enable Shared Experience', function() g_game.partyShareExperience(true) end)
|
||||
menu:addOption(tr('Enable Shared Experience'), function() g_game.partyShareExperience(true) end)
|
||||
end
|
||||
end
|
||||
menu:addOption('Leave Party', function() g_game.partyLeave() end)
|
||||
menu:addOption(tr('Leave Party'), function() g_game.partyLeave() end)
|
||||
end
|
||||
|
||||
else
|
||||
local localPlayer = g_game.getLocalPlayer()
|
||||
if localPlayer then
|
||||
if g_game.getAttackingCreature() ~= creatureThing then
|
||||
menu:addOption('Attack', function() g_game.attack(creatureThing) end)
|
||||
menu:addOption(tr('Attack'), function() g_game.attack(creatureThing) end)
|
||||
else
|
||||
menu:addOption('Stop Attack', function() g_game.cancelAttack() end)
|
||||
menu:addOption(tr('Stop Attack'), function() g_game.cancelAttack() end)
|
||||
end
|
||||
|
||||
if g_game.getFollowingCreature() ~= creatureThing then
|
||||
menu:addOption('Follow', function() g_game.follow(creatureThing) end)
|
||||
menu:addOption(tr('Follow'), function() g_game.follow(creatureThing) end)
|
||||
else
|
||||
menu:addOption('Stop Follow', function() g_game.cancelFollow() end)
|
||||
menu:addOption(tr('Stop Follow'), function() g_game.cancelFollow() end)
|
||||
end
|
||||
|
||||
if creatureThing:asPlayer() then
|
||||
menu:addSeparator()
|
||||
local creatureName = creatureThing:getName()
|
||||
menu:addOption('Message to ' .. creatureName, function() g_game.openPrivateChannel(creatureName) end)
|
||||
menu:addOption(tr('Message to %s', creatureName), function() g_game.openPrivateChannel(creatureName) end)
|
||||
if Console.getOwnPrivateTab() then
|
||||
menu:addOption('Invite to private chat', function() g_game.inviteToOwnChannel(creatureName) end)
|
||||
menu:addOption('Exclude from private chat', function() g_game.excludeFromOwnChannel(creatureName) end) -- [TODO] must be removed after message's popup labels been implemented
|
||||
menu:addOption(tr('Invite to private chat'), function() g_game.inviteToOwnChannel(creatureName) end)
|
||||
menu:addOption(tr('Exclude from private chat'), function() g_game.excludeFromOwnChannel(creatureName) end) -- [TODO] must be removed after message's popup labels been implemented
|
||||
end
|
||||
menu:addOption('Add to VIP list', function() g_game.addVip(creatureName) end)
|
||||
menu:addOption(tr('Add to VIP list'), function() g_game.addVip(creatureName) end)
|
||||
|
||||
local localPlayerShield = localPlayer:asCreature():getShield()
|
||||
local creatureShield = creatureThing:getShield()
|
||||
|
||||
if localPlayerShield == ShieldNone or localPlayerShield == ShieldWhiteBlue then
|
||||
if creatureShield == ShieldWhiteYellow then
|
||||
menu:addOption('Join ' .. creatureThing:getName() .. '\'s Party', function() g_game.partyJoin(creatureThing:getId()) end)
|
||||
menu:addOption(tr('Join %s\'s Party', creatureThing:getName()), function() g_game.partyJoin(creatureThing:getId()) end)
|
||||
else
|
||||
menu:addOption('Invite to Party', function() g_game.partyInvite(creatureThing:getId()) end)
|
||||
menu:addOption(tr('Invite to Party'), function() g_game.partyInvite(creatureThing:getId()) end)
|
||||
end
|
||||
elseif localPlayerShield == ShieldWhiteYellow then
|
||||
if creatureShield == ShieldWhiteBlue then
|
||||
menu:addOption('Revoke ' .. creatureThing:getName() .. '\'s Invitation', function() g_game.partyRevokeInvitation(creatureThing:getId()) end)
|
||||
menu:addOption(tr('Revoke %s\'s Invitation', creatureThing:getName()), function() g_game.partyRevokeInvitation(creatureThing:getId()) end)
|
||||
end
|
||||
elseif localPlayerShield == ShieldYellow or localPlayerShield == ShieldYellowSharedExp or localPlayerShield == ShieldYellowNoSharedExpBlink or localPlayerShield == ShieldYellowNoSharedExp then
|
||||
if creatureShield == ShieldWhiteBlue then
|
||||
menu:addOption('Revoke ' .. creatureThing:getName() .. '\'s Invitation', function() g_game.partyRevokeInvitation(creatureThing:getId()) end)
|
||||
menu:addOption(tr('Revoke %s\'s Invitation', creatureThing:getName()), function() g_game.partyRevokeInvitation(creatureThing:getId()) end)
|
||||
elseif creatureShield == ShieldBlue or creatureShield == ShieldBlueSharedExp or creatureShield == ShieldBlueNoSharedExpBlink or creatureShield == ShieldBlueNoSharedExp then
|
||||
menu:addOption('Pass Leadership to ' .. creatureThing:getName(), function() g_game.partyPassLeadership(creatureThing:getId()) end)
|
||||
menu:addOption(tr('Pass Leadership to %s'), function() g_game.partyPassLeadership(creatureThing:getId()) end)
|
||||
else
|
||||
menu:addOption('Invite to Party', function() g_game.partyInvite(creatureThing:getId()) end)
|
||||
menu:addOption(tr('Invite to Party'), function() g_game.partyInvite(creatureThing:getId()) end)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -267,7 +267,7 @@ function GameInterface.createThingMenu(menuPosition, lookThing, useThing, creatu
|
|||
end
|
||||
|
||||
menu:addSeparator()
|
||||
menu:addOption('Copy Name', function() g_window.setClipboardText(creatureThing:getName()) end)
|
||||
menu:addOption(tr('Copy Name'), function() g_window.setClipboardText(creatureThing:getName()) end)
|
||||
|
||||
end
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
CountWindow < MainWindow
|
||||
id: countWindow
|
||||
text: Move Stackable Item
|
||||
!text: tr('Move Stackable Item')
|
||||
size: 196 112
|
||||
@onEscape: self:destroy()
|
||||
|
||||
Label
|
||||
text: Amount:
|
||||
!text: tr('Amount:')
|
||||
width: 64
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
|
@ -26,7 +26,7 @@ CountWindow < MainWindow
|
|||
|
||||
Button
|
||||
id: buttonOk
|
||||
text: Ok
|
||||
!text: tr('Ok')
|
||||
width: 64
|
||||
anchors.right: next.left
|
||||
anchors.bottom: parent.bottom
|
||||
|
@ -34,7 +34,7 @@ CountWindow < MainWindow
|
|||
|
||||
Button
|
||||
id: buttonCancel
|
||||
text: Cancel
|
||||
!text: tr('Cancel')
|
||||
width: 64
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
|
|
|
@ -6,7 +6,6 @@ MiniWindow < UIMiniWindow
|
|||
text-offset: 24 5
|
||||
text-align: topLeft
|
||||
margin-bottom: 2
|
||||
move-policy: free updated
|
||||
image-source: /game/images/miniwindow.png
|
||||
image-border: 4
|
||||
image-border-top: 23
|
||||
|
|
|
@ -68,7 +68,7 @@ function UIGameMap:onMouseRelease(mousePosition, mouseButton)
|
|||
elseif mouseButton == MouseLeftButton and self:isPressed() then
|
||||
local dirs = g_map.findPath(g_game.getLocalPlayer():getPosition(), tile:getPosition(), 255)
|
||||
if #dirs == 0 then
|
||||
TextMessage.displayStatus('There is no way.')
|
||||
TextMessage.displayStatus(tr('There is no way.'))
|
||||
return true
|
||||
end
|
||||
g_game.autoWalk(dirs)
|
||||
|
|
|
@ -37,7 +37,7 @@ table.insert(lifeBarColors, {percentAbove = -1, color = '#4F0000' } )
|
|||
-- public functions
|
||||
function Battle.init()
|
||||
battleWindow = displayUI('battle.otui', GameInterface.getLeftPanel())
|
||||
battleButton = TopMenu.addGameToggleButton('battleButton', 'Battle (Ctrl+B)', 'battle.png', Battle.toggle)
|
||||
battleButton = TopMenu.addGameToggleButton('battleButton', tr('Battle') .. ' (Ctrl+B)', 'battle.png', Battle.toggle)
|
||||
battleButton:setOn(true)
|
||||
Keyboard.bindKeyDown('Ctrl+B', Battle.toggle)
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ BattleParty < BattleIcon
|
|||
|
||||
MiniWindow
|
||||
id: battleWindow
|
||||
text: Battle
|
||||
!text: tr('Battle')
|
||||
height: 166
|
||||
icon: battle.png
|
||||
@onClose: Battle.toggle()
|
||||
|
@ -46,34 +46,34 @@ MiniWindow
|
|||
MiniWindowContents
|
||||
BattlePlayers
|
||||
id: hidePlayers
|
||||
tooltip: Hide players
|
||||
!tooltip: tr('Hide players')
|
||||
anchors.top: parent.top
|
||||
anchors.right: next.left
|
||||
margin-right: 5
|
||||
|
||||
BattleNPCs
|
||||
id: hideNPCs
|
||||
tooltip: Hide Npc's
|
||||
!tooltip: tr('Hide Npcs')
|
||||
anchors.top: parent.top
|
||||
anchors.right: next.left
|
||||
margin-right: 5
|
||||
|
||||
BattleMonsters
|
||||
id: hideMonsters
|
||||
tooltip: Hide monsters
|
||||
!tooltip: tr('Hide monsters')
|
||||
anchors.top: parent.top
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
BattleSkulls
|
||||
id: hideSkulls
|
||||
tooltip: Hide non-skull players
|
||||
!tooltip: tr('Hide non-skull players')
|
||||
anchors.top: prev.top
|
||||
anchors.left: prev.right
|
||||
margin-left: 5
|
||||
|
||||
BattleParty
|
||||
id: hideParty
|
||||
tooltip: Hide party members
|
||||
!tooltip: tr('Hide party members')
|
||||
anchors.top: prev.top
|
||||
anchors.left: prev.right
|
||||
margin-left: 5
|
||||
|
|
|
@ -48,7 +48,7 @@ end
|
|||
|
||||
-- public functions
|
||||
function CombatControls.init()
|
||||
combatControlsButton = TopMenu.addGameToggleButton('combatControlsButton', 'Combat Controls', 'combatcontrols.png', CombatControls.toggle)
|
||||
combatControlsButton = TopMenu.addGameToggleButton('combatControlsButton', tr('Combat Controls'), 'combatcontrols.png', CombatControls.toggle)
|
||||
combatControlsButton:setOn(true)
|
||||
combatControlsWindow = loadUI('combatcontrols.otui', GameInterface.getRightPanel())
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ SafeFightBox < CombatBox
|
|||
image-source: /game_combatcontrols/icons/safefight.png
|
||||
|
||||
MiniWindow
|
||||
text: Combat Controls
|
||||
!text: tr('Combat Controls')
|
||||
icon: combatcontrols.png
|
||||
height: 64
|
||||
@onClose: CombatControls.toggle()
|
||||
|
|
|
@ -10,7 +10,7 @@ ChannelListLabel < Label
|
|||
|
||||
MainWindow
|
||||
id: channelsWindow
|
||||
text: Channels
|
||||
!text: tr('Channels')
|
||||
size: 250 238
|
||||
@onEscape: self:destroy()
|
||||
|
||||
|
@ -25,7 +25,7 @@ MainWindow
|
|||
|
||||
Label
|
||||
id: openPrivateChannelWithLabel
|
||||
text: Open a private message channel:
|
||||
!text: tr('Open a private message channel:')
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: next.top
|
||||
|
@ -41,7 +41,7 @@ MainWindow
|
|||
|
||||
Button
|
||||
id: buttonOpen
|
||||
text: Open
|
||||
!text: tr('Open')
|
||||
width: 64
|
||||
anchors.right: next.left
|
||||
anchors.bottom: parent.bottom
|
||||
|
@ -50,7 +50,7 @@ MainWindow
|
|||
|
||||
Button
|
||||
id: buttonCancel
|
||||
text: Cancel
|
||||
!text: tr('Cancel')
|
||||
width: 64
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
|
|
|
@ -91,7 +91,7 @@ local function onCreatureSpeak(name, level, speaktype, message, channelId, creat
|
|||
if speaktype.private then
|
||||
Console.addPrivateText(message, speaktype, name, false)
|
||||
else
|
||||
local channel = 'Default'
|
||||
local channel = tr('Default')
|
||||
if not defaultMessage then
|
||||
channel = channels[channelId]
|
||||
end
|
||||
|
@ -177,7 +177,7 @@ local function onChannelList(channelList)
|
|||
end
|
||||
|
||||
local function onGameStart()
|
||||
local tab = Console.getTab('Default')
|
||||
local tab = Console.getTab(tr('Default'))
|
||||
if tab then
|
||||
addEvent(function() consoleTabBar:selectTab(tab) end, false)
|
||||
end
|
||||
|
@ -201,8 +201,8 @@ function Console.init()
|
|||
consoleTabBar:setContentWidget(consoleContentPanel)
|
||||
channels = {}
|
||||
|
||||
Console.addTab('Default', true)
|
||||
Console.addTab('Server Log', false)
|
||||
Console.addTab(tr('Default'), true)
|
||||
Console.addTab(tr('Server Log'), false)
|
||||
|
||||
Keyboard.bindKeyPress('Shift+Up', function() navigateMessageHistory(1) end, consolePanel)
|
||||
Keyboard.bindKeyPress('Shift+Down', function() navigateMessageHistory(-1) end, consolePanel)
|
||||
|
@ -265,8 +265,8 @@ function Console.clear()
|
|||
|
||||
channels = {}
|
||||
|
||||
consoleTabBar:getTab('Default').tabPanel:getChildById('consoleBuffer'):destroyChildren()
|
||||
consoleTabBar:getTab('Server Log').tabPanel:getChildById('consoleBuffer'):destroyChildren()
|
||||
consoleTabBar:getTab(tr('Default')).tabPanel:getChildById('consoleBuffer'):destroyChildren()
|
||||
consoleTabBar:getTab(tr('Server Log')).tabPanel:getChildById('consoleBuffer'):destroyChildren()
|
||||
|
||||
local npcTab = consoleTabBar:getTab('NPCs')
|
||||
if npcTab then
|
||||
|
@ -289,14 +289,14 @@ function Console.addTab(name, focus)
|
|||
local tab = consoleTabBar:addTab(name)
|
||||
if focus then
|
||||
consoleTabBar:selectTab(tab)
|
||||
elseif name ~= 'Server Log' then
|
||||
elseif name ~= tr('Server Log') then
|
||||
consoleTabBar:blinkTab(tab)
|
||||
end
|
||||
return tab
|
||||
end
|
||||
|
||||
function Console.onTabChange(tabBar, tab)
|
||||
if tab:getText() == "Default" or tab:getText() == "Server Log" then
|
||||
if tab:getText() == tr('Default') or tab:getText() == tr('Server Log') then
|
||||
consolePanel:getChildById('closeChannelButton'):disable()
|
||||
else
|
||||
consolePanel:getChildById('closeChannelButton'):enable()
|
||||
|
@ -305,7 +305,7 @@ end
|
|||
|
||||
function Console.removeCurrentTab()
|
||||
local tab = consoleTabBar:getCurrentTab()
|
||||
if tab:getText() == "Default" or tab:getText() == "Server Log" then return end
|
||||
if tab:getText() == tr('Default') or tab:getText() == tr('Server Log') then return end
|
||||
|
||||
-- notificate the server that we are leaving the channel
|
||||
if tab.channelId then
|
||||
|
@ -342,7 +342,7 @@ function Console.addPrivateText(text, speaktype, name, isPrivateCommand)
|
|||
local privateTab = Console.getTab(name)
|
||||
if privateTab == nil then
|
||||
if Options['showPrivateMessagesInConsole'] or (isPrivateCommand and not privateTab) then
|
||||
privateTab = Console.getTab('Default')
|
||||
privateTab = Console.getTab(tr('Default'))
|
||||
else
|
||||
privateTab = Console.addTab(name, focus)
|
||||
end
|
||||
|
@ -424,14 +424,14 @@ function Console.sendCurrentMessage()
|
|||
|
||||
-- when talking on server log, the message goes to default channel
|
||||
local name = tab:getText()
|
||||
if name == 'Server Log' then
|
||||
tab = Console.getTab('Default')
|
||||
name = 'Default'
|
||||
if name == tr('Server Log') then
|
||||
tab = Console.getTab(tr('Default'))
|
||||
name = tr('Default')
|
||||
end
|
||||
|
||||
local speaktypedesc
|
||||
if (tab.channelId or name == 'Default') and not chatCommandPrivateReady then
|
||||
if name == 'Default' then
|
||||
if (tab.channelId or name == tr('Default')) and not chatCommandPrivateReady then
|
||||
if name == tr('Default') then
|
||||
speaktypedesc = chatCommandSayMode or SayModes[consolePanel:getChildById('sayModeButton').sayMode].speakTypeDesc
|
||||
if speaktypedesc ~= 'say' then Console.sayModeChange(2) end -- head back to say mode
|
||||
else
|
||||
|
|
|
@ -64,7 +64,7 @@ Panel
|
|||
|
||||
TabButton
|
||||
id: closeChannelButton
|
||||
tooltip: Close this channel (Ctrl+E)
|
||||
!tooltip: tr('Close this channel') .. ' (Ctrl+E)'
|
||||
icon: /core_styles/icons/closechannel.png
|
||||
anchors.right: next.left
|
||||
anchors.top: parent.top
|
||||
|
@ -75,7 +75,7 @@ Panel
|
|||
|
||||
TabButton
|
||||
id: channelsButton
|
||||
tooltip: Open new channel (Ctrl+O)
|
||||
!tooltip: tr('Open new channel') .. ' (Ctrl+O)'
|
||||
icon: /core_styles/icons/channels.png
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
|
@ -99,7 +99,7 @@ Panel
|
|||
TabButton
|
||||
id: sayModeButton
|
||||
icon: /core_styles/icons/say.png
|
||||
tooltip: Adjust volume
|
||||
!tooltip: tr('Adjust volume')
|
||||
&sayMode: 2
|
||||
size: 20 20
|
||||
anchors.left: parent.left
|
||||
|
|
|
@ -2,21 +2,21 @@ HealthBar = {}
|
|||
|
||||
-- constants
|
||||
local Icons = {}
|
||||
Icons[1] = { tooltip = 'You are poisoned', path = '/game_healthbar/icons/poisoned.png', id = 'condition_poisoned' }
|
||||
Icons[2] = { tooltip = 'You are burning', path = '/game_healthbar/icons/burning.png', id = 'condition_burning' }
|
||||
Icons[4] = { tooltip = 'You are electrified', path = '/game_healthbar/icons/electrified.png', id = 'condition_electrified' }
|
||||
Icons[8] = { tooltip = 'You are freezing', path = '/game_healthbar/icons/drunk.png', id = 'condition_drunk' }
|
||||
Icons[16] = { tooltip = 'You are protected by a magic shield', path = '/game_healthbar/icons/magic_shield.png', id = 'condition_magic_shield' }
|
||||
Icons[32] = { tooltip = 'You are paralysed', path = '/game_healthbar/icons/slowed.png', id = 'condition_slowed' }
|
||||
Icons[64] = { tooltip = 'You are hasted', path = '/game_healthbar/icons/haste.png', id = 'condition_haste' }
|
||||
Icons[128] = { tooltip = 'You may not logout during a fight', path = '/game_healthbar/icons/logout_block.png', id = 'condition_logout_block' }
|
||||
Icons[256] = { tooltip = 'You are drowing', path = '/game_healthbar/icons/drowning.png', id = 'condition_drowning' }
|
||||
Icons[512] = { tooltip = 'You are freezing', path = '/game_healthbar/icons/freezing.png', id = 'condition_freezing' }
|
||||
Icons[1024] = { tooltip = 'You are dazzled', path = '/game_healthbar/icons/dazzled.png', id = 'condition_dazzled' }
|
||||
Icons[2048] = { tooltip = 'You are cursed', path = '/game_healthbar/icons/cursed.png', id = 'condition_cursed' }
|
||||
Icons[4096] = { tooltip = 'You are strengthened', path = '/game_healthbar/icons/strengthened.png', id = 'condition_strengthened' }
|
||||
Icons[8192] = { tooltip = 'You may not logout or enter a protection zone', path = '/game_healthbar/icons/protection_zone_block.png', id = 'condition_protection_zone_block' }
|
||||
Icons[16384] = { tooltip = 'You are within a protection zone', path = '/game_healthbar/icons/protection_zone.png', id = 'condition_protection_zone' }
|
||||
Icons[1] = { tooltip = tr('You are poisoned'), path = '/game_healthbar/icons/poisoned.png', id = 'condition_poisoned' }
|
||||
Icons[2] = { tooltip = tr('You are burning'), path = '/game_healthbar/icons/burning.png', id = 'condition_burning' }
|
||||
Icons[4] = { tooltip = tr('You are electrified'), path = '/game_healthbar/icons/electrified.png', id = 'condition_electrified' }
|
||||
Icons[8] = { tooltip = tr('You are freezing'), path = '/game_healthbar/icons/drunk.png', id = 'condition_drunk' }
|
||||
Icons[16] = { tooltip = tr('You are protected by a magic shield'), path = '/game_healthbar/icons/magic_shield.png', id = 'condition_magic_shield' }
|
||||
Icons[32] = { tooltip = tr('You are paralysed'), path = '/game_healthbar/icons/slowed.png', id = 'condition_slowed' }
|
||||
Icons[64] = { tooltip = tr('You are hasted'), path = '/game_healthbar/icons/haste.png', id = 'condition_haste' }
|
||||
Icons[128] = { tooltip = tr('You may not logout during a fight'), path = '/game_healthbar/icons/logout_block.png', id = 'condition_logout_block' }
|
||||
Icons[256] = { tooltip = tr('You are drowing'), path = '/game_healthbar/icons/drowning.png', id = 'condition_drowning' }
|
||||
Icons[512] = { tooltip = tr('You are freezing'), path = '/game_healthbar/icons/freezing.png', id = 'condition_freezing' }
|
||||
Icons[1024] = { tooltip = tr('You are dazzled'), path = '/game_healthbar/icons/dazzled.png', id = 'condition_dazzled' }
|
||||
Icons[2048] = { tooltip = tr('You are cursed'), path = '/game_healthbar/icons/cursed.png', id = 'condition_cursed' }
|
||||
Icons[4096] = { tooltip = tr('You are strengthened'), path = '/game_healthbar/icons/strengthened.png', id = 'condition_strengthened' }
|
||||
Icons[8192] = { tooltip = tr('You may not logout or enter a protection zone'), path = '/game_healthbar/icons/protection_zone_block.png', id = 'condition_protection_zone_block' }
|
||||
Icons[16384] = { tooltip = tr('You are within a protection zone'), path = '/game_healthbar/icons/protection_zone.png', id = 'condition_protection_zone' }
|
||||
|
||||
-- private variables
|
||||
local healthBarWindow
|
||||
|
@ -34,7 +34,7 @@ function HealthBar.init()
|
|||
connect(g_game, { onGameEnd = HealthBar.offline })
|
||||
|
||||
healthBarWindow = displayUI('healthbar.otui', GameInterface.getLeftPanel())
|
||||
healthBarButton = TopMenu.addGameToggleButton('healthBarButton', 'Healh Bar', 'healthbar.png', HealthBar.toggle)
|
||||
healthBarButton = TopMenu.addGameToggleButton('healthBarButton', tr('Health Bar'), 'healthbar.png', HealthBar.toggle)
|
||||
healthBarButton:setOn(true)
|
||||
healthBar = healthBarWindow:recursiveGetChildById('healthBar')
|
||||
manaBar = healthBarWindow:recursiveGetChildById('manaBar')
|
||||
|
|
|
@ -42,7 +42,7 @@ ConditionWidget < UIWidget
|
|||
MiniWindow
|
||||
icon: healthbar.png
|
||||
id: healthBarWindow
|
||||
text: Health Bar
|
||||
!text: tr('Health Bar')
|
||||
height: 86
|
||||
@onClose: HealthBar.toggle()
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ function HotkeysManager.init()
|
|||
hotkeysWindow = displayUI('hotkeys_manager.otui')
|
||||
|
||||
hotkeysWindow:setVisible(false)
|
||||
hotkeysButton = TopMenu.addGameButton('hotkeysButton', 'Hotkeys (Ctrl+K)', '/game_hotkeys/icon.png', HotkeysManager.toggle)
|
||||
hotkeysButton = TopMenu.addGameButton('hotkeysButton', tr('Hotkeys') .. ' (Ctrl+K)', '/game_hotkeys/icon.png', HotkeysManager.toggle)
|
||||
Keyboard.bindKeyDown('Ctrl+K', HotkeysManager.toggle)
|
||||
|
||||
currentHotkeysList = hotkeysWindow:getChildById('currentHotkeys')
|
||||
|
@ -201,20 +201,20 @@ function HotkeysManager.addHotkey()
|
|||
messageBox = createWidget('MainWindow', rootWidget)
|
||||
messageBox:grabKeyboard()
|
||||
messageBox:setId('assignWindow')
|
||||
messageBox:setText('Button Assign')
|
||||
messageBox:setText(tr('Button Assign'))
|
||||
messageBox:setWidth(420)
|
||||
messageBox:setHeight(140)
|
||||
messageBox:setDragable(false)
|
||||
|
||||
widget = createWidget('Label', messageBox)
|
||||
widget:setText('Please, press the key you wish to add onto your hotkeys manager')
|
||||
widget:setText(tr('Please, press the key you wish to add onto your hotkeys manager'))
|
||||
widget:resizeToText()
|
||||
widget:addAnchor(AnchorHorizontalCenter, 'parent', AnchorHorizontalCenter)
|
||||
widget:addAnchor(AnchorTop, 'parent', AnchorTop)
|
||||
|
||||
widget = createWidget('Label', messageBox)
|
||||
widget:setId('comboPreview')
|
||||
widget:setText('Current hotkey to add: None')
|
||||
widget:setText(tr('Current hotkey to add: %s', 'none'))
|
||||
widget.keyCombo = ''
|
||||
widget:resizeToText()
|
||||
widget:addAnchor(AnchorHorizontalCenter, 'parent', AnchorHorizontalCenter)
|
||||
|
@ -223,7 +223,7 @@ function HotkeysManager.addHotkey()
|
|||
|
||||
widget = createWidget('Button', messageBox)
|
||||
widget:setId('cancelButton')
|
||||
widget:setText('Cancel')
|
||||
widget:setText(tr('Cancel'))
|
||||
widget:setWidth(64)
|
||||
widget:addAnchor(AnchorBottom, 'parent', AnchorBottom)
|
||||
widget:addAnchor(AnchorRight, 'parent', AnchorRight)
|
||||
|
@ -234,7 +234,7 @@ function HotkeysManager.addHotkey()
|
|||
|
||||
widget = createWidget('Button', messageBox)
|
||||
widget:setId('addButton')
|
||||
widget:setText('Add')
|
||||
widget:setText(tr('Add'))
|
||||
widget:setWidth(64)
|
||||
widget:disable()
|
||||
widget:addAnchor(AnchorBottom, 'cancelButton', AnchorBottom)
|
||||
|
@ -372,19 +372,19 @@ function HotkeysManager.changeUseType(useType, checked)
|
|||
useWith:enable()
|
||||
|
||||
if useType == HOTKEY_MANAGER_USEONSELF then
|
||||
hotkeyLabelSelectedOnList:setText(hotkeyLabelSelectedOnList.keyCombo .. ': (use object on yourself)')
|
||||
hotkeyLabelSelectedOnList:setText(tr('%s: (use object on yourself)', hotkeyLabelSelectedOnList.keyCombo))
|
||||
hotkeyLabelSelectedOnList:setColor(hotkeyColors.itemUseSelf)
|
||||
useOnSelf:setChecked(true)
|
||||
useOnTarget:setChecked(false)
|
||||
useWith:setChecked(false)
|
||||
elseif useType == HOTKEY_MANAGER_USEONTARGET then
|
||||
hotkeyLabelSelectedOnList:setText(hotkeyLabelSelectedOnList.keyCombo .. ': (use object on target)')
|
||||
hotkeyLabelSelectedOnList:setText(tr('%s: (use object on target)', hotkeyLabelSelectedOnList.keyCombo))
|
||||
hotkeyLabelSelectedOnList:setColor(hotkeyColors.itemUseTarget)
|
||||
useOnSelf:setChecked(false)
|
||||
useOnTarget:setChecked(true)
|
||||
useWith:setChecked(false)
|
||||
elseif useType == HOTKEY_MANAGER_USEWITH then
|
||||
hotkeyLabelSelectedOnList:setText(hotkeyLabelSelectedOnList.keyCombo .. ': (use object with crosshair)')
|
||||
hotkeyLabelSelectedOnList:setText(tr('%s: (use object with crosshair)', hotkeyLabelSelectedOnList.keyCombo))
|
||||
hotkeyLabelSelectedOnList:setColor(hotkeyColors.itemUseWith)
|
||||
|
||||
useOnSelf:setChecked(false)
|
||||
|
@ -396,7 +396,7 @@ function HotkeysManager.changeUseType(useType, checked)
|
|||
useOnTarget:disable()
|
||||
useWith:disable()
|
||||
|
||||
hotkeyLabelSelectedOnList:setText(hotkeyLabelSelectedOnList.keyCombo .. ': (use object)')
|
||||
hotkeyLabelSelectedOnList:setText(tr('%s: (use object)', hotkeyLabelSelectedOnList.keyCombo))
|
||||
hotkeyLabelSelectedOnList:setColor(hotkeyColors.itemUse)
|
||||
|
||||
useOnSelf:setChecked(false)
|
||||
|
@ -448,7 +448,7 @@ end
|
|||
function HotkeysManager.hotkeyCapture(widget, keyCode, keyboardModifiers)
|
||||
local keyCombo = determineKeyComboDesc(keyCode, keyboardModifiers)
|
||||
local comboPreview = rootWidget:getChildById('assignWindow'):getChildById('comboPreview')
|
||||
comboPreview:setText('Current hotkey to add: '.. keyCombo)
|
||||
comboPreview:setText(tr('Current hotkey to add: %s', keyCombo))
|
||||
comboPreview.keyCombo = keyCombo
|
||||
comboPreview:resizeToText()
|
||||
rootWidget:getChildById('assignWindow'):getChildById('addButton'):enable()
|
||||
|
|
|
@ -10,7 +10,7 @@ HotkeyListLabel < UILabel
|
|||
|
||||
MainWindow
|
||||
id: hotkeysWindow
|
||||
text: Hotkeys
|
||||
!text: tr('Hotkeys')
|
||||
size: 340 460
|
||||
|
||||
@onEnter: HotkeysManager.hide()
|
||||
|
@ -18,7 +18,7 @@ MainWindow
|
|||
|
||||
Label
|
||||
id: currentHotkeysLabel
|
||||
text: Current hotkeys:
|
||||
!text: tr('Current hotkeys:')
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
|
@ -43,7 +43,7 @@ MainWindow
|
|||
focusable: false
|
||||
|
||||
Label
|
||||
text: Manage hotkeys:
|
||||
!text: tr('Manage hotkeys:')
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: prev.bottom
|
||||
|
@ -51,7 +51,7 @@ MainWindow
|
|||
|
||||
Button
|
||||
id: addHotkey
|
||||
text: Add
|
||||
!text: tr('Add')
|
||||
width: 64
|
||||
anchors.left: parent.left
|
||||
anchors.top: prev.bottom
|
||||
|
@ -60,7 +60,7 @@ MainWindow
|
|||
|
||||
Button
|
||||
id: removeHotkey
|
||||
text: Remove
|
||||
!text: tr('Remove')
|
||||
width: 64
|
||||
enabled: false
|
||||
anchors.left: prev.right
|
||||
|
@ -70,7 +70,7 @@ MainWindow
|
|||
|
||||
Label
|
||||
id: hotKeyTextLabel
|
||||
text: Edit hotkey text:
|
||||
!text: tr('Edit hotkey text:')
|
||||
enable: false
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
@ -88,7 +88,7 @@ MainWindow
|
|||
|
||||
CheckBox
|
||||
id: sendAutomatically
|
||||
text: Send automatically
|
||||
!text: tr('Send automatically')
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: prev.bottom
|
||||
|
@ -105,7 +105,7 @@ MainWindow
|
|||
|
||||
Button
|
||||
id: selectObjectButton
|
||||
text: Select object
|
||||
!text: tr('Select object')
|
||||
width: 128
|
||||
enabled: false
|
||||
anchors.left: prev.right
|
||||
|
@ -115,7 +115,7 @@ MainWindow
|
|||
|
||||
Button
|
||||
id: clearObjectButton
|
||||
text: Clear object
|
||||
!text: tr('Clear object')
|
||||
width: 128
|
||||
enabled: false
|
||||
anchors.left: prev.left
|
||||
|
@ -126,7 +126,7 @@ MainWindow
|
|||
|
||||
ButtonBox
|
||||
id: useOnSelf
|
||||
text: Use on yourself
|
||||
!text: tr('Use on yourself')
|
||||
width: 128
|
||||
enabled: false
|
||||
anchors.left: selectObjectButton.right
|
||||
|
@ -138,7 +138,7 @@ MainWindow
|
|||
|
||||
ButtonBox
|
||||
id: useOnTarget
|
||||
text: Use on target
|
||||
!text: tr('Use on target')
|
||||
width: 128
|
||||
enabled: false
|
||||
anchors.left: prev.left
|
||||
|
@ -150,7 +150,7 @@ MainWindow
|
|||
|
||||
ButtonBox
|
||||
id: useWith
|
||||
text: With crosshair
|
||||
!text: tr('With crosshair')
|
||||
width: 128
|
||||
enabled: false
|
||||
anchors.left: prev.left
|
||||
|
@ -161,7 +161,7 @@ MainWindow
|
|||
@onCheckChange: HotkeysManager.changeUseType(HOTKEY_MANAGER_USEWITH, self:isChecked())
|
||||
|
||||
Button
|
||||
text: Close
|
||||
!text: tr('Close')
|
||||
width: 64
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
|
|
|
@ -17,7 +17,7 @@ function Inventory.init()
|
|||
inventoryWindow = displayUI('inventory.otui', GameInterface.getRightPanel())
|
||||
inventoryWindow.onClose = Inventory.toggle
|
||||
inventoryPanel = inventoryWindow:getChildById('contentsPanel')
|
||||
inventoryButton = TopMenu.addGameToggleButton('inventoryButton', 'Inventory (Ctrl+I)', 'inventory.png', Inventory.toggle)
|
||||
inventoryButton = TopMenu.addGameToggleButton('inventoryButton', tr('Inventory') .. ' (Ctrl+I)', 'inventory.png', Inventory.toggle)
|
||||
inventoryButton:setOn(true)
|
||||
|
||||
if g_game.isOnline() then
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
MiniWindow
|
||||
id: inventoryMiniWindow
|
||||
text: Inventory
|
||||
!text: tr('Inventory')
|
||||
icon: inventory.png
|
||||
height: 180
|
||||
@onClose: Inventory.toggle()
|
||||
|
|
|
@ -10,7 +10,7 @@ function onMinimapMouseRelease(self, mousePosition, mouseButton)
|
|||
if tile and mouseButton == MouseLeftButton and self:isPressed() then
|
||||
local dirs = g_map.findPath(g_game.getLocalPlayer():getPosition(), tile:getPosition(), 255)
|
||||
if #dirs == 0 then
|
||||
TextMessage.displayStatus('There is no way.')
|
||||
TextMessage.displayStatus(tr('There is no way.'))
|
||||
return true
|
||||
end
|
||||
g_game.autoWalk(dirs)
|
||||
|
@ -33,7 +33,7 @@ function Minimap.init()
|
|||
connect(g_game, { onLogin = Minimap.reset })
|
||||
Keyboard.bindKeyDown('Ctrl+M', Minimap.toggle)
|
||||
|
||||
minimapButton = TopMenu.addGameToggleButton('minimapButton', 'Minimap (Ctrl+M)', 'minimap.png', Minimap.toggle)
|
||||
minimapButton = TopMenu.addGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', 'minimap.png', Minimap.toggle)
|
||||
minimapButton:setOn(false)
|
||||
|
||||
minimapWidget = loadUI('minimap.otui', GameInterface.getMapPanel())
|
||||
|
|
|
@ -132,7 +132,7 @@ end
|
|||
function NPCTrade.updateSetup()
|
||||
if offerSelected then
|
||||
if radioItems.selectedWidget:isEnabled() then
|
||||
if setupButton:getText() == 'Buy' then
|
||||
if setupButton:getText() == tr('Buy') then
|
||||
local capacityMaxCount = math.floor(100*g_game.getLocalPlayer():getFreeCapacity()/offerSelected[3])
|
||||
local priceMaxCount = math.floor(moneyGoods/NPCTrade.getOfferPrice(offerSelected))
|
||||
quantityScroll:setMaximum(math.max(0, math.min(100, math.min(priceMaxCount, capacityMaxCount))))
|
||||
|
@ -148,7 +148,7 @@ function NPCTrade.updateSetup()
|
|||
end
|
||||
|
||||
function NPCTrade.getOfferPrice(offer)
|
||||
if setupButton:getText() == 'Buy' then
|
||||
if setupButton:getText() == tr('Buy') then
|
||||
local price = offer[4]
|
||||
if buyWithBackpack then
|
||||
if offer[1]:isStackable() then
|
||||
|
@ -225,14 +225,14 @@ end
|
|||
function NPCTrade.itemPopup(self, mousePosition, mouseButton)
|
||||
if mouseButton == MouseRightButton then
|
||||
local menu = createWidget('PopupMenu')
|
||||
menu:addOption('Look', function() return g_game.inspectNpcTrade(self.offer[1]) end)
|
||||
menu:addOption(tr('Look'), function() return g_game.inspectNpcTrade(self.offer[1]) end)
|
||||
menu:addSeparator()
|
||||
if setupButton:getText() == 'Buy' then
|
||||
menu:addOption((buyWithBackpack and 'Buy no backpack' or 'Buy with backpack'), NPCTrade.switchBuyWithBackpack)
|
||||
menu:addOption((ignoreCapacity and 'Consider capacity' or 'Ignore capacity'), function() ignoreCapacity = not ignoreCapacity return true end)
|
||||
if setupButton:getText() == tr('Buy') then
|
||||
menu:addOption((buyWithBackpack and tr('Buy no backpack') or tr('Buy with backpack')), NPCTrade.switchBuyWithBackpack)
|
||||
menu:addOption((ignoreCapacity and tr('Consider capacity') or tr('Ignore capacity')), function() ignoreCapacity = not ignoreCapacity return true end)
|
||||
else
|
||||
menu:addOption((ignoreEquipped and 'Consider equipped' or 'Ignore equipped'), function() ignoreEquipped = not ignoreEquipped return true end)
|
||||
menu:addOption((showOnlyHolding and 'Show all items' or 'Show only holding items'), function() showOnlyHolding = not showOnlyHolding NPCTrade.refreshFilters() return true end)
|
||||
menu:addOption((ignoreEquipped and tr('Consider equipped') or tr('Ignore equipped')), function() ignoreEquipped = not ignoreEquipped return true end)
|
||||
menu:addOption((showOnlyHolding and tr('Show all items') or tr('Show only holding items')), function() showOnlyHolding = not showOnlyHolding NPCTrade.refreshFilters() return true end)
|
||||
end
|
||||
menu:display(mousePosition)
|
||||
end
|
||||
|
@ -274,7 +274,7 @@ function NPCTrade.createItemsOnPanel()
|
|||
end
|
||||
|
||||
function NPCTrade.extraFilters(widget, showOnlyHolding)
|
||||
if setupButton:getText() == 'Sell' then
|
||||
if setupButton:getText() == tr('Sell') then
|
||||
if not showOnlyHolding or cacheGoods[widget.offer[1]:getId()] then
|
||||
return true
|
||||
else
|
||||
|
@ -307,7 +307,7 @@ function NPCTrade.refreshFilters()
|
|||
end
|
||||
|
||||
function NPCTrade.refreshItemsPanel()
|
||||
if setupButton:getText() == 'Buy' then
|
||||
if setupButton:getText() == tr('Buy') then
|
||||
local items = itemsPanel:getChildCount()
|
||||
for i = 1, items do
|
||||
local itemWidget = itemsPanel:getChildByIndex(i)
|
||||
|
|
|
@ -52,15 +52,15 @@ NPCItemBox < UICheckBox
|
|||
|
||||
MainWindow
|
||||
id: npcWindow
|
||||
text: NPC Trade
|
||||
!text: tr('NPC Trade')
|
||||
size: 550 550
|
||||
|
||||
@onEscape: NPCTrade.hide()
|
||||
|
||||
TabButton
|
||||
id: buyTab
|
||||
tooltip: List of items that you're able to buy
|
||||
text: Buy
|
||||
!tooltip: tr("List of items that you're able to buy")
|
||||
!text: tr('Buy')
|
||||
checked: true
|
||||
on: true
|
||||
anchors.left: parent.left
|
||||
|
@ -71,8 +71,8 @@ MainWindow
|
|||
|
||||
TabButton
|
||||
id: sellTab
|
||||
tooltip: List of items that you're able to sell
|
||||
text: Sell
|
||||
!tooltip: tr("List of items that you're able to sell")
|
||||
!text: tr('Sell')
|
||||
anchors.left: parent.horizontalCenter
|
||||
anchors.right: parent.right
|
||||
anchors.top: parent.top
|
||||
|
@ -81,7 +81,7 @@ MainWindow
|
|||
|
||||
Label
|
||||
id: searchLabel
|
||||
text: Search:
|
||||
!text: tr('Search:')
|
||||
anchors.left: parent.left
|
||||
anchors.top: prev.bottom
|
||||
text-auto-resize: true
|
||||
|
@ -137,7 +137,7 @@ MainWindow
|
|||
|
||||
Label
|
||||
id: quantityLabel
|
||||
text: Quantity:
|
||||
!text: tr('Quantity:')
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
text-auto-resize: true
|
||||
|
@ -161,7 +161,7 @@ MainWindow
|
|||
|
||||
Label
|
||||
id: nameLabel
|
||||
text: Name:
|
||||
!text: tr('Name:')
|
||||
anchors.left: parent.left
|
||||
anchors.top: prev.bottom
|
||||
margin-top: 5
|
||||
|
@ -173,7 +173,7 @@ MainWindow
|
|||
|
||||
Label
|
||||
id: priceLabel
|
||||
text: Price:
|
||||
!text: tr('Price:')
|
||||
anchors.left: parent.left
|
||||
anchors.top: prev.bottom
|
||||
margin-top: 5
|
||||
|
@ -185,7 +185,7 @@ MainWindow
|
|||
|
||||
Label
|
||||
id: moneyLabel
|
||||
text: Money:
|
||||
!text: tr('Money:')
|
||||
anchors.left: parent.left
|
||||
anchors.top: prev.bottom
|
||||
margin-top: 5
|
||||
|
@ -197,7 +197,7 @@ MainWindow
|
|||
|
||||
Label
|
||||
id: weightLabel
|
||||
text: Weight:
|
||||
!text: tr('Weight:')
|
||||
anchors.left: parent.left
|
||||
anchors.top: prev.bottom
|
||||
margin-top: 5
|
||||
|
@ -209,7 +209,7 @@ MainWindow
|
|||
|
||||
Label
|
||||
id: capacityLabel
|
||||
text: Capacity:
|
||||
!text: tr('Capacity:')
|
||||
anchors.left: parent.left
|
||||
anchors.top: prev.bottom
|
||||
margin-top: 5
|
||||
|
@ -221,14 +221,14 @@ MainWindow
|
|||
|
||||
Button
|
||||
id: setupButton
|
||||
text: Buy
|
||||
!text: tr('Buy')
|
||||
width: 64
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.top: prev.bottom
|
||||
@onClick: NPCTrade.setupButton()
|
||||
|
||||
Button
|
||||
text: Close
|
||||
!text: tr('Close')
|
||||
width: 64
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Window
|
||||
text: Select Outfit
|
||||
!text: tr('Select Outfit')
|
||||
size: 550 280
|
||||
padding: 0 0 0 0
|
||||
|
||||
|
@ -11,7 +11,7 @@ Window
|
|||
|
||||
Label
|
||||
id: outfitName
|
||||
text: Outfit Name
|
||||
!text: tr('Outfit Name')
|
||||
width: 100
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
|
@ -43,7 +43,7 @@ Window
|
|||
|
||||
ButtonBox
|
||||
id: head
|
||||
text: Head
|
||||
!text: tr('Head')
|
||||
anchors.top: outfitCreatureBox.top
|
||||
anchors.left: outfitCreatureBox.right
|
||||
margin-left: 10
|
||||
|
@ -52,21 +52,21 @@ Window
|
|||
|
||||
ButtonBox
|
||||
id: primary
|
||||
text: Primary
|
||||
!text: tr('Primary')
|
||||
anchors.top: prev.bottom
|
||||
anchors.left: prev.left
|
||||
width: 90
|
||||
|
||||
ButtonBox
|
||||
id: secondary
|
||||
text: Secondary
|
||||
!text: tr('Secondary')
|
||||
anchors.top: prev.bottom
|
||||
anchors.left: prev.left
|
||||
width: 90
|
||||
|
||||
ButtonBox
|
||||
id: detail
|
||||
text: Detail
|
||||
!text: tr('Detail')
|
||||
anchors.top: prev.bottom
|
||||
anchors.left: prev.left
|
||||
width: 90
|
||||
|
@ -91,7 +91,7 @@ Window
|
|||
|
||||
CheckBox
|
||||
id: addon1
|
||||
text: Addon 1
|
||||
!text: tr('Addon 1')
|
||||
enabled: false
|
||||
margin-top: 6
|
||||
width: 100
|
||||
|
@ -100,7 +100,7 @@ Window
|
|||
|
||||
CheckBox
|
||||
id: addon2
|
||||
text: Addon 2
|
||||
!text: tr('Addon 2')
|
||||
enabled: false
|
||||
margin-top: 2
|
||||
width: 100
|
||||
|
@ -109,7 +109,7 @@ Window
|
|||
|
||||
CheckBox
|
||||
id: addon3
|
||||
text: Addon 3
|
||||
!text: tr('Addon 3')
|
||||
enabled: false
|
||||
margin-top: 2
|
||||
width: 100
|
||||
|
@ -126,7 +126,7 @@ Window
|
|||
|
||||
Button
|
||||
id: outfitOkButton
|
||||
text: Ok
|
||||
!text: tr('Ok')
|
||||
width: 64
|
||||
anchors.right: next.left
|
||||
anchors.bottom: parent.bottom
|
||||
|
@ -136,7 +136,7 @@ Window
|
|||
|
||||
Button
|
||||
id: outfitCancelButton
|
||||
text: Cancel
|
||||
!text: tr('Cancel')
|
||||
width: 64
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
|
|
|
@ -36,7 +36,7 @@ function Skills.init()
|
|||
})
|
||||
|
||||
skillsWindow = displayUI('skills.otui', GameInterface.getLeftPanel())
|
||||
skillsButton = TopMenu.addGameToggleButton('skillsButton', 'Skills (Ctrl+S)', 'skills.png', Skills.toggle)
|
||||
skillsButton = TopMenu.addGameToggleButton('skillsButton', tr('Skills') .. ' (Ctrl+S)', 'skills.png', Skills.toggle)
|
||||
skillsButton:setOn(true)
|
||||
Keyboard.bindKeyDown('Ctrl+S', Skills.toggle)
|
||||
end
|
||||
|
@ -86,7 +86,7 @@ end
|
|||
|
||||
function Skills.onLevelChange(localPlayer, value, percent)
|
||||
setSkillValue('level', tr(value))
|
||||
setSkillPercent('level', percent, 'You have ' .. (100 - percent) .. ' percent to go')
|
||||
setSkillPercent('level', percent, tr('You have %s percent to go', 100 - percent))
|
||||
end
|
||||
|
||||
function Skills.onHealthChange(localPlayer, health, maxHealth)
|
||||
|
@ -114,16 +114,16 @@ function Skills.onStaminaChange(localPlayer, stamina)
|
|||
local percent = 100 * stamina / (42 * 60) -- max is 42 hours
|
||||
|
||||
setSkillValue('stamina', hours .. ":" .. minutes)
|
||||
setSkillPercent('stamina', percent, 'You have ' .. percent .. ' percent')
|
||||
setSkillPercent('stamina', percent, tr('You have %s percent', percent))
|
||||
end
|
||||
|
||||
function Skills.onMagicLevelChange(localPlayer, value, percent)
|
||||
setSkillValue('magiclevel', value)
|
||||
setSkillPercent('magiclevel', percent, 'You have ' .. (100 - percent) .. ' percent to go')
|
||||
setSkillPercent('magiclevel', percent, tr('You have %s percent to go', 100 - percent))
|
||||
end
|
||||
|
||||
function Skills.onSkillChange(localPlayer, id, level, percent)
|
||||
setSkillValue('skillId' .. id, level)
|
||||
setSkillPercent('skillId' .. id, percent, 'You have ' .. (100 - percent) .. ' percent to go')
|
||||
setSkillPercent('skillId' .. id, percent, tr('You have %s percent to go', 100 - percent))
|
||||
end
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ SkillPercentPanel < ProgressBar
|
|||
|
||||
MiniWindow
|
||||
id: skillWindow
|
||||
text: Skills
|
||||
!text: tr('Skills')
|
||||
height: 350
|
||||
icon: skills.png
|
||||
@onClose: Skills.toggle()
|
||||
|
@ -45,13 +45,13 @@ MiniWindow
|
|||
id: experience
|
||||
height: 15
|
||||
SkillNameLabel
|
||||
text: Experience
|
||||
!text: tr('Experience')
|
||||
SkillValueLabel
|
||||
|
||||
SkillButton
|
||||
id: level
|
||||
SkillNameLabel
|
||||
text: Level
|
||||
!text: tr('Level')
|
||||
SkillValueLabel
|
||||
SkillPercentPanel
|
||||
background-color: red
|
||||
|
@ -60,41 +60,41 @@ MiniWindow
|
|||
id: health
|
||||
height: 15
|
||||
SkillNameLabel
|
||||
text: Hit Points
|
||||
!text: tr('Hit Points')
|
||||
SkillValueLabel
|
||||
|
||||
SkillButton
|
||||
id: mana
|
||||
height: 15
|
||||
SkillNameLabel
|
||||
text: Mana
|
||||
!text: tr('Mana')
|
||||
SkillValueLabel
|
||||
|
||||
SkillButton
|
||||
id: soul
|
||||
height: 15
|
||||
SkillNameLabel
|
||||
text: Soul Points
|
||||
!text: tr('Soul Points')
|
||||
SkillValueLabel
|
||||
|
||||
SkillButton
|
||||
id: capacity
|
||||
height: 15
|
||||
SkillNameLabel
|
||||
text: Capacity
|
||||
!text: tr('Capacity')
|
||||
SkillValueLabel
|
||||
|
||||
SkillButton
|
||||
id: stamina
|
||||
SkillNameLabel
|
||||
text: Stamina
|
||||
!text: tr('Stamina')
|
||||
SkillValueLabel
|
||||
SkillPercentPanel
|
||||
|
||||
SkillButton
|
||||
id: magiclevel
|
||||
SkillNameLabel
|
||||
text: Magic Level
|
||||
!text: tr('Magic Level')
|
||||
SkillValueLabel
|
||||
SkillPercentPanel
|
||||
background-color: red
|
||||
|
@ -102,14 +102,14 @@ MiniWindow
|
|||
SkillButton
|
||||
id: skillId0
|
||||
SkillNameLabel
|
||||
text: Fist Fighting
|
||||
!text: tr('Fist Fighting')
|
||||
SkillValueLabel
|
||||
SkillPercentPanel
|
||||
|
||||
SkillButton
|
||||
id: skillId1
|
||||
SkillNameLabel
|
||||
text: Club Fighting
|
||||
!text: tr('Club Fighting')
|
||||
SkillValueLabel
|
||||
SkillPercentPanel
|
||||
|
||||
|
@ -117,35 +117,35 @@ MiniWindow
|
|||
id: skillId2
|
||||
|
||||
SkillNameLabel
|
||||
text: Sword Fighting
|
||||
!text: tr('Sword Fighting')
|
||||
SkillValueLabel
|
||||
SkillPercentPanel
|
||||
|
||||
SkillButton
|
||||
id: skillId3
|
||||
SkillNameLabel
|
||||
text: Axe Fighting
|
||||
!text: tr('Axe Fighting')
|
||||
SkillValueLabel
|
||||
SkillPercentPanel
|
||||
|
||||
SkillButton
|
||||
id: skillId4
|
||||
SkillNameLabel
|
||||
text: Distance Fighting
|
||||
!text: tr('Distance Fighting')
|
||||
SkillValueLabel
|
||||
SkillPercentPanel
|
||||
|
||||
SkillButton
|
||||
id: skillId5
|
||||
SkillNameLabel
|
||||
text: Shielding
|
||||
!text: tr('Shielding')
|
||||
SkillValueLabel
|
||||
SkillPercentPanel
|
||||
|
||||
SkillButton
|
||||
id: skillId6
|
||||
SkillNameLabel
|
||||
text: Fishing
|
||||
!text: tr('Fishing')
|
||||
SkillValueLabel
|
||||
SkillPercentPanel
|
||||
|
||||
|
|
|
@ -5,14 +5,14 @@ importStyle 'textmessage.otui'
|
|||
|
||||
-- private variables
|
||||
local MessageTypes = {
|
||||
consoleRed = { color = '#F55E5E', consoleTab = 'Default' },
|
||||
consoleOrange = { color = '#FE6500', consoleTab = 'Default' },
|
||||
consoleBlue = { color = '#9F9DFD', consoleTab = 'Default' },
|
||||
warning = { color = '#F55E5E', consoleTab = 'Server Log', labelId = 'centerWarning', wrap = true },
|
||||
infoDescription = { color = '#00EB00', consoleTab = 'Server Log', labelId = 'centerInfo', consoleOption = 'showInfoMessagesInConsole', wrap = true },
|
||||
eventAdvance = { color = '#FFFFFF', consoleTab = 'Server Log', labelId = 'centerAdvance', consoleOption = 'showEventMessagesInConsole', wrap = true },
|
||||
eventDefault = { color = '#FFFFFF', consoleTab = 'Server Log', labelId = 'bottomStatus', consoleOption = 'showEventMessagesInConsole' },
|
||||
statusDefault = { color = '#FFFFFF', consoleTab = 'Server Log', labelId = 'bottomStatus', consoleOption = 'showStatusMessagesInConsole' },
|
||||
consoleRed = { color = '#F55E5E', consoleTab = tr('Default') },
|
||||
consoleOrange = { color = '#FE6500', consoleTab = tr('Default') },
|
||||
consoleBlue = { color = '#9F9DFD', consoleTab = tr('Default') },
|
||||
warning = { color = '#F55E5E', consoleTab = tr('Server Log'), labelId = 'centerWarning', wrap = true },
|
||||
infoDescription = { color = '#00EB00', consoleTab = tr('Server Log'), labelId = 'centerInfo', consoleOption = 'showInfoMessagesInConsole', wrap = true },
|
||||
eventAdvance = { color = '#FFFFFF', consoleTab = tr('Server Log'), labelId = 'centerAdvance', consoleOption = 'showEventMessagesInConsole', wrap = true },
|
||||
eventDefault = { color = '#FFFFFF', consoleTab = tr('Server Log'), labelId = 'bottomStatus', consoleOption = 'showEventMessagesInConsole' },
|
||||
statusDefault = { color = '#FFFFFF', consoleTab = tr('Server Log'), labelId = 'bottomStatus', consoleOption = 'showStatusMessagesInConsole' },
|
||||
statusSmall = { color = '#FFFFFF', labelId = 'bottomStatus' },
|
||||
}
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@ Module
|
|||
|
||||
@onLoad: |
|
||||
if not g_thingsType.load('/game_tibiafiles/Tibia.dat') then
|
||||
fatal("Unable to load dat file, please place a valid Tibia dat in modules/game_tibiafiles/Tibia.dat")
|
||||
fatal(tr("Unable to load dat file, please place a valid Tibia dat in modules/game_tibiafiles/Tibia.dat"))
|
||||
end
|
||||
if not g_sprites.load('/game_tibiafiles/Tibia.spr') then
|
||||
fatal("Unable to load spr file, please place a valid Tibia spr in modules/game_tibiafiles/Tibia.spr")
|
||||
fatal(tr("Unable to load spr file, please place a valid Tibia spr in modules/game_tibiafiles/Tibia.spr"))
|
||||
end
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
MainWindow
|
||||
size: 256 128
|
||||
text: Add to VIP list
|
||||
!text: tr('Add to VIP list')
|
||||
@onEnter: VipList.addVip()
|
||||
@onEscape: VipList.destroyAddWindow()
|
||||
|
||||
Label
|
||||
text: Please enter a character name:
|
||||
!text: tr('Please enter a character name:')
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
@ -24,7 +24,7 @@ MainWindow
|
|||
margin-bottom: 10
|
||||
|
||||
Button
|
||||
text: Ok
|
||||
!text: tr('Ok')
|
||||
width: 64
|
||||
anchors.right: next.left
|
||||
anchors.bottom: parent.bottom
|
||||
|
@ -32,7 +32,7 @@ MainWindow
|
|||
@onClick: VipList.addVip()
|
||||
|
||||
Button
|
||||
text: Cancel
|
||||
!text: tr('Cancel')
|
||||
width: 64
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
|
|
|
@ -13,7 +13,7 @@ function VipList.init()
|
|||
|
||||
|
||||
vipWindow = displayUI('viplist.otui', GameInterface.getLeftPanel())
|
||||
vipButton = TopMenu.addGameToggleButton('vipListButton', 'VIP list', 'viplist.png', VipList.toggle)
|
||||
vipButton = TopMenu.addGameToggleButton('vipListButton', tr('VIP list'), 'viplist.png', VipList.toggle)
|
||||
vipButton:setOn(true)
|
||||
end
|
||||
|
||||
|
@ -127,10 +127,10 @@ function VipList.onVipListLabelMousePress(widget, mousePos, mouseButton)
|
|||
local vipList = vipWindow:getChildById('contentsPanel')
|
||||
|
||||
local menu = createWidget('PopupMenu')
|
||||
menu:addOption('Add new VIP', function() VipList.createAddWindow() end)
|
||||
menu:addOption('Remove ' .. widget:getText(), function() if widget then g_game.removeVip(widget:getId():sub(4)) vipList:removeChild(widget) end end)
|
||||
menu:addOption(tr('Add new VIP'), function() VipList.createAddWindow() end)
|
||||
menu:addOption(tr('Remove %s', widget:getText()), function() if widget then g_game.removeVip(widget:getId():sub(4)) vipList:removeChild(widget) end end)
|
||||
menu:addSeparator()
|
||||
menu:addOption('Copy Name', function() g_window.setClipboardText(widget:getText()) end)
|
||||
menu:addOption(tr('Copy Name'), function() g_window.setClipboardText(widget:getText()) end)
|
||||
menu:display(mousePos)
|
||||
|
||||
return true
|
||||
|
|
|
@ -5,7 +5,7 @@ VipListLabel < GameLabel
|
|||
|
||||
MiniWindow
|
||||
id: vipWindow
|
||||
text: VIP List
|
||||
!text: tr('VIP List')
|
||||
height: 100
|
||||
icon: viplist.png
|
||||
@onClose: VipList.toggle()
|
||||
|
|
|
@ -89,16 +89,17 @@ void MapView::draw(const Rect& rect)
|
|||
for(int z=m_cachedLastVisibleFloor;z>=m_cachedFirstVisibleFloor;--z) {
|
||||
while(it != end) {
|
||||
const TilePtr& tile = *it;
|
||||
if(tile->getPosition().z != z)
|
||||
Position tilePos = tile->getPosition();
|
||||
if(tilePos.z != z)
|
||||
break;
|
||||
else
|
||||
++it;
|
||||
|
||||
if(!m_drawMinimapColors)
|
||||
tile->draw(transformPositionTo2D(tile->getPosition()), scaleFactor, drawFlags);
|
||||
tile->draw(transformPositionTo2D(tilePos), scaleFactor, drawFlags);
|
||||
else {
|
||||
g_painter->setColor(tile->getMinimapColor());
|
||||
g_painter->drawFilledRect(Rect(transformPositionTo2D(tile->getPosition()), tileSize));
|
||||
g_painter->drawFilledRect(Rect(transformPositionTo2D(tilePos), tileSize));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue