Öncelikle iyi forumlar, bu konuda sizlere dün yazmış olduğum 
Laravel 7.x dil fonksiyonundan lua'ya uyarlama yaptığım kodu paylaşacağım, kısaca artıları ve zararları;
Bir script içine atıp export vererek kullanmanıza olanak sağlar, direkt olarak tabloyu düzenlemektense modüler bir yapı izler, dinamik değişkenlik göstererir ve kendini yineler. Gereksiz iş yükünden kurtulursunuz her Lua'nın farklı dillerdeki karşılıklarını girebilirsiniz.
local defaultLang = false
local keycodes = {}
function __(...)
  local args = { ... }
  if string.find(args[1], 'lang.') and #args == 1 then 
    defaultLang = ( tonumber(args[1]:len()) < 8 )
      and args[1]
      or false
      if defaultLang then
        return {
          defaultLang,
          true
        }
      end
  end
  args.key = ( type(args[1]) == 'string' and 7 > string.len(args[1]) )
    and args[1]
    or false
    if #args == 1 and args.key then
      return keycodes[((defaultLang or '') .. '.' or '')..args.key]
      or {
        outputDebugString('Undefined lang key', 3, 255, 255, 255), 
        false
      }
    end
  
  args.value = ( type(args[1]) == 'string' and #args > 1 )
    and args[2] 
    or false 
    if args.value and args.key then
      keycodes = keycodes or {}
      keycodes[((defaultLang or '') .. '.' or '')..args.key] = keycodes[((defaultLang or '') .. '.' or '')..args.key] or args.value
      return keycodes[((defaultLang or '') .. '.' or '')..args.key] 
      or { 
        outputDebugString('Undefined lang key with value function', 3, 255, 255, 255), 
        false 
      }
    end
end
__('lang.tr')
__('abc', 'abcde') -- lang.tr.abc tanımlaması
print(__('abc')) -- seçilen default dil tr olduğundan ötürü lang.tr.abc getiriliyor
__('lang.en') -- seçilen dili lang.en olarak ayarladık (kısaca en)
__('asd', '123') -- lang.en.asd tanımlaması
__('abc', '1234') -- lang.en.abc tanımlaması
print(__('abc')) -- seçilen default dil en olduğu için lang.en.abc getiriliyor