API des locales
Tout vient de bs_core/shared/sh_locale.lua. La façon de préparer une resource à la traduction est sur Langues. Cette page est la référence.
Langues : en, pt, de, pl, tr, es, fr, it, ru. Les clés manquantes retombent sur en, puis sur la clé elle-même.
L’inclure
Section intitulée « L’inclure »shared_scripts { '@bs_core/shared/sh_locale.lua' }files { 'locales/*.lua' }Chaque locales/<lang>.lua renvoie une table plate :
return { ['shop.title'] = 'Trader', ['shop.bought'] = 'You bought {item} for ${price}',}Les placeholders s’écrivent {name}. Un placeholder inconnu est laissé tel quel, pour que les fautes de frappe se voient au lieu de disparaître.
Fonctions Lua
Section intitulée « Fonctions Lua »| Fonction | Côté | Ce qu’elle fait |
|---|---|---|
L(key, vars) | client | Texte dans la langue du joueur local |
L(key, vars) | server | Texte dans la langue par défaut du serveur |
L(src, key, vars) | server | Texte dans la langue de ce joueur |
Lp(src, key, vars) | server | Pareil que ci-dessus, prend toujours un source |
BSLocale.T(lang, key, vars) | les deux | Texte dans une langue que tu nommes |
BSLocale.Lang() | les deux | Langue du joueur local (client) ou celle par défaut (server) |
BSLocale.LangOf(src) | les deux | Langue d’un joueur, retombe sur celle par défaut |
BSLocale.Default() | les deux | Défaut du serveur (GlobalState.bs_defaultLang, sinon en) |
BSLocale.IsValid(lang) | les deux | Si c’est l’un des neuf codes |
BSLocale.Dict(lang) | les deux | La table complète avec en dessous, pour NUI |
BSLocale.OnChange(fn) | client | fn(lang) s’exécute quand la langue change |
BSLocale.Set(lang) | client | Demande à bs_core de changer la langue du joueur |
BSLocale.Languages, BSLocale.Native | les deux | La liste des codes et les noms natifs |
Export serveur : exports.bs_core:GetLanguage(src).
Côté serveur, passe toujours le source du joueur quand le texte va à un seul joueur. L('key') sans source utilise la langue par défaut du serveur, ce qui est faux pour une notification.
TriggerClientEvent('bs:ui:notify', src, { type = 'success', message = L(src, 'shop.bought', { item = label, price = 50 }) })- Choix du joueur : state bag
bs_langsur le joueur. - Défaut du serveur :
GlobalState.bs_defaultLang(F1Global.defaultLanguage, ou la convarbs_defaultLanguage). - Enregistré par compte dans
bs_users.language. - Le changer déclenche l’événement serveur
bs_core:setLanguage.
Si la resource a une ui_page, le script de locales répond au callback NUI bs_i18n avec { lang, dict } et pousse la nouvelle table quand la langue change. Charge le helper et balise ton HTML :
<script src="nui://bs_ui/html/js/i18n.js"></script><span data-i18n="ui.level">LEVEL</span>En JS : t('key', vars) et BSI18n.onChange(fn). Détails sur Langues.
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.