Eai, tudo certo? 
	Existem diversas maneiras de atingir esse objetivo, vou tentar te explicar a maneira que eu usaria. 
	 
	Na resource em que você faz a troca de linguagens:
 
-- Adicione um evento, que será chamado sempre que houver mudança na seleção de idioma
addEvent('onChangeLanguage', true)
-- Adicione alguma maneira de trocar o idioma enquanto joga, já que no seu caso ele só está sendo setado entrar no jogo
-- Por exemplo: ao clicar em um combobox de seleção de linguagens, chame a funçao abaixo
SetNewLanguage = function(newLang)
    setElementData(localPlayer, 'language', newLang)
    -- Chame o evento (depois de atualizar o valor da linguagem atual)
    triggerEvent('onChangeLanguage', localPlayer)
end
	 
	Na outra resource (onde você criou alguma interface GUI):
 
-- Incie uma tabela para armazenar os dados
local toTranslate = {}
-- Crie uma função para inserir os elementos dentro da tabela
AssignTranslation = function(element, value)
    toTranslate[element] = value
end
-- Crie uma função para traduzir todos os elementos da tabela
TranslateUI = function()
    for elem, value in pairs(toTranslate) do
        guiSetText(elem, exports.DayZ:getLanguageTextClient(value))
    end
end
-- Adicione um handler para o evento de quando se troca de idioma, para forçar a tradução dos elementos que estão na tabela
addEventHandler('onChangeLanguage', localPlayer, TranslateUI)
-- Crie os elementos gui e configure uma tradução pra eles
local guiWindow
CreateUI = function()
    local w, h = 500, 500
    guiWindow = guiCreateWindow((sW - w) / 2, (sH - h) / 2, w, h, '', false)
    AssignTranslation(guiWindow, 'settingsL')
    guiSetVisible(guiWindow, false)
    local label = guiCreateLabel(100, 100, 200, 200, '', false, guiWindow)
    AssignTranslation(label, 'playL')
end
addEventHandler('onClientResourceStart', resourceRoot, CreateUI)
-- Adicione um comando para exibir/esconder a janela
addCommandHandler('toggle', function()
    if (not isElement(guiWindow)) then
        return false
    end
    local state = not guiGetVisible(guiWindow)
    -- Caso vá exibir a janela, chamamos a função para traduzir os textos
    if state then
        TranslateUI()
    end
    guiSetVisible(guiWindow, state)
    showCursor(state)
end)
	Dessa forma, sempre que você trocar de linguagem ou abrir a interface, todos os elementos GUI serão traduzidos para a linguagem atual do jogador. 
	 
	No caso de funções DX (como dxDrawText), não é necessário fazer esse procedimento, já que elas são chamadas a cada frame com o valor atualizado, a única recomendação que eu deixaria é que você crie uma função para fazer cache das traduções, justamente para evitar ficar chamando via exports o tempo todo, que pode causar uma grande perda de desempenho. Algo como:
 
local cache = {}
Translate = function(text)
    if (cache[text] == nil) then
        cache[text] = exports.DayZ:getLanguageTextClient(text)
    end
    return cache[text]
end
	Dessa forma, ao invés de ficar sempre chamando o exports, voce chamaria diretamente a função Translate. 
	 
	Boa sorte