API de locales
Tudo isto vem de bs_core/shared/sh_locale.lua. Como preparar um resource para tradução está em Idiomas. Esta página é a referência.
Idiomas: en, pt, de, pl, tr, es, fr, it, ru. Chaves em falta recorrem a en e depois à própria chave.
Incluir
Seção intitulada “Incluir”shared_scripts { '@bs_core/shared/sh_locale.lua' }files { 'locales/*.lua' }Cada locales/<lang>.lua devolve uma tabela plana:
return { ['shop.title'] = 'Trader', ['shop.bought'] = 'You bought {item} for ${price}',}Os placeholders são {name}. Um placeholder desconhecido fica como está, para os erros de escrita aparecerem em vez de desaparecerem.
Funções Lua
Seção intitulada “Funções Lua”| Função | Lado | O que faz |
|---|---|---|
L(key, vars) | client | Texto no idioma do jogador local |
L(key, vars) | server | Texto no idioma por defeito do servidor |
L(src, key, vars) | server | Texto no idioma desse jogador |
Lp(src, key, vars) | server | O mesmo que acima, recebe sempre um source |
BSLocale.T(lang, key, vars) | ambos | Texto num idioma que indicas |
BSLocale.Lang() | ambos | Idioma do jogador local (client) ou o por defeito (server) |
BSLocale.LangOf(src) | ambos | Idioma de um jogador, recorre ao por defeito |
BSLocale.Default() | ambos | Por defeito do servidor (GlobalState.bs_defaultLang, senão en) |
BSLocale.IsValid(lang) | ambos | Se é um dos nove códigos |
BSLocale.Dict(lang) | ambos | A tabela completa com en por baixo, para NUI |
BSLocale.OnChange(fn) | client | fn(lang) corre quando o idioma muda |
BSLocale.Set(lang) | client | Pede ao bs_core para mudar o idioma do jogador |
BSLocale.Languages, BSLocale.Native | ambos | A lista de códigos e os nomes nativos |
Export do servidor: exports.bs_core:GetLanguage(src).
No servidor, passa sempre o source do jogador quando o texto vai para um só jogador. L('key') sem source usa o idioma por defeito do servidor, o que está errado para uma notificação.
TriggerClientEvent('bs:ui:notify', src, { type = 'success', message = L(src, 'shop.bought', { item = label, price = 50 }) })- Escolha do jogador: state bag
bs_langno jogador. - Por defeito do servidor:
GlobalState.bs_defaultLang(F1Global.defaultLanguage, ou a convarbs_defaultLanguage). - Guardado por conta em
bs_users.language. - Mudá-lo dispara o evento de servidor
bs_core:setLanguage.
Se o resource tiver um ui_page, o script de locale responde ao callback NUI bs_i18n com { lang, dict } e envia a nova tabela quando o idioma muda. Carrega o helper e marca o teu HTML:
<script src="nui://bs_ui/html/js/i18n.js"></script><span data-i18n="ui.level">LEVEL</span>Em JS: t('key', vars) e BSI18n.onChange(fn). Detalhes em Idiomas.
bs19.org · Privacy · Terms · Cookie settings
Cookies and outside content
The site only needs two essential cookies to keep you logged in and protect forms. Videos and streams from YouTube and Twitch load from their servers, which can set their own cookies, so they stay off until you say yes. Nothing is pre-ticked and you can change your mind any time with "Cookie settings" at the bottom of every page. Details.
Questions about the server, the framework or the site? A real person reads this, usually within a day.