API de locales
Todo esto viene de bs_core/shared/sh_locale.lua. Cómo preparar un resource para traducirlo está en Idiomas. Esta página es la referencia.
Idiomas: en, pt, de, pl, tr, es, fr, it, ru. Las claves que faltan recurren a en y después a la propia clave.
Incluirlo
Sección titulada «Incluirlo»shared_scripts { '@bs_core/shared/sh_locale.lua' }files { 'locales/*.lua' }Cada locales/<lang>.lua devuelve una tabla plana:
return { ['shop.title'] = 'Trader', ['shop.bought'] = 'You bought {item} for ${price}',}Los placeholders son {name}. Un placeholder desconocido se deja tal cual, para que los errores de escritura se vean en vez de desaparecer.
Funciones Lua
Sección titulada «Funciones Lua»| Función | Lado | Qué hace |
|---|---|---|
L(key, vars) | client | Texto en el idioma del jugador local |
L(key, vars) | server | Texto en el idioma por defecto del servidor |
L(src, key, vars) | server | Texto en el idioma de ese jugador |
Lp(src, key, vars) | server | Igual que lo anterior, siempre recibe un source |
BSLocale.T(lang, key, vars) | ambos | Texto en un idioma que indiques |
BSLocale.Lang() | ambos | Idioma del jugador local (client) o el de por defecto (server) |
BSLocale.LangOf(src) | ambos | Idioma de un jugador, recurre al de por defecto |
BSLocale.Default() | ambos | Por defecto del servidor (GlobalState.bs_defaultLang, si no en) |
BSLocale.IsValid(lang) | ambos | Si es uno de los nueve códigos |
BSLocale.Dict(lang) | ambos | La tabla completa con en debajo, para NUI |
BSLocale.OnChange(fn) | client | fn(lang) se ejecuta cuando cambia el idioma |
BSLocale.Set(lang) | client | Pide a bs_core que cambie el idioma del jugador |
BSLocale.Languages, BSLocale.Native | ambos | La lista de códigos y los nombres nativos |
Export de servidor: exports.bs_core:GetLanguage(src).
En el servidor pasa siempre el source del jugador cuando el texto va a un solo jugador. L('key') sin source usa el idioma por defecto del servidor, que es incorrecto para una notificación.
TriggerClientEvent('bs:ui:notify', src, { type = 'success', message = L(src, 'shop.bought', { item = label, price = 50 }) })- Elección del jugador: state bag
bs_langen el jugador. - Por defecto del servidor:
GlobalState.bs_defaultLang(F1Global.defaultLanguage, o la convarbs_defaultLanguage). - Guardado por cuenta en
bs_users.language. - Cambiarlo dispara el evento de servidor
bs_core:setLanguage.
Si el resource tiene un ui_page, el script de locales responde al callback NUI bs_i18n con { lang, dict } y envía la nueva tabla cuando cambia el idioma. Carga el helper y marca tu HTML:
<script src="nui://bs_ui/html/js/i18n.js"></script><span data-i18n="ui.level">LEVEL</span>En JS: t('key', vars) y BSI18n.onChange(fn). Detalles en 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.