API delle locale
Tutto questo viene da bs_core/shared/sh_locale.lua. Come preparare una resource alla traduzione è spiegato in Lingue. Questa pagina è il riferimento.
Lingue: en, pt, de, pl, tr, es, fr, it, ru. Le chiavi mancanti ripiegano su en, poi sulla chiave stessa.
Includerlo
Sezione intitolata “Includerlo”shared_scripts { '@bs_core/shared/sh_locale.lua' }files { 'locales/*.lua' }Ogni locales/<lang>.lua restituisce una tabella piatta:
return { ['shop.title'] = 'Trader', ['shop.bought'] = 'You bought {item} for ${price}',}I placeholder sono {name}. Un placeholder sconosciuto viene lasciato com’è, così gli errori di battitura si vedono invece di sparire.
Funzioni Lua
Sezione intitolata “Funzioni Lua”| Funzione | Lato | Cosa fa |
|---|---|---|
L(key, vars) | client | Testo nella lingua del giocatore locale |
L(key, vars) | server | Testo nella lingua predefinita del server |
L(src, key, vars) | server | Testo nella lingua di quel giocatore |
Lp(src, key, vars) | server | Come sopra, prende sempre un source |
BSLocale.T(lang, key, vars) | entrambi | Testo in una lingua che indichi |
BSLocale.Lang() | entrambi | Lingua del giocatore locale (client) o quella predefinita (server) |
BSLocale.LangOf(src) | entrambi | Lingua di un giocatore, ripiega su quella predefinita |
BSLocale.Default() | entrambi | Predefinita del server (GlobalState.bs_defaultLang, altrimenti en) |
BSLocale.IsValid(lang) | entrambi | Se è uno dei nove codici |
BSLocale.Dict(lang) | entrambi | L’intera tabella con en sotto, per NUI |
BSLocale.OnChange(fn) | client | fn(lang) gira quando la lingua cambia |
BSLocale.Set(lang) | client | Chiede a bs_core di cambiare la lingua del giocatore |
BSLocale.Languages, BSLocale.Native | entrambi | L’elenco dei codici e i nomi nativi |
Export del server: exports.bs_core:GetLanguage(src).
Sul server passa sempre il source del giocatore quando il testo va a un solo giocatore. L('key') senza source usa la lingua predefinita del server, che per una notifica è sbagliata.
TriggerClientEvent('bs:ui:notify', src, { type = 'success', message = L(src, 'shop.bought', { item = label, price = 50 }) })- Scelta del giocatore: state bag
bs_langsul giocatore. - Predefinita del server:
GlobalState.bs_defaultLang(F1Global.defaultLanguage, o la convarbs_defaultLanguage). - Salvata per account in
bs_users.language. - Cambiarla scatena l’evento server
bs_core:setLanguage.
Se la resource ha una ui_page, lo script di locale risponde al callback NUI bs_i18n con { lang, dict } e invia la nuova tabella quando la lingua cambia. Carica l’helper e marca il tuo HTML:
<script src="nui://bs_ui/html/js/i18n.js"></script><span data-i18n="ui.level">LEVEL</span>In JS: t('key', vars) e BSI18n.onChange(fn). Dettagli in Lingue.
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.