Locales-API
Alles hier stammt aus bs_core/shared/sh_locale.lua. Wie du eine Resource für Übersetzung vorbereitest, steht unter Sprachen. Diese Seite ist die Referenz.
Sprachen: en, pt, de, pl, tr, es, fr, it, ru. Fehlende Schlüssel fallen auf en zurück, danach auf den Schlüssel selbst.
Einbinden
Abschnitt betitelt „Einbinden“shared_scripts { '@bs_core/shared/sh_locale.lua' }files { 'locales/*.lua' }Jede locales/<lang>.lua gibt eine flache Tabelle zurück:
return { ['shop.title'] = 'Trader', ['shop.bought'] = 'You bought {item} for ${price}',}Platzhalter sind {name}. Ein unbekannter Platzhalter bleibt unverändert, damit Tippfehler sichtbar werden statt zu verschwinden.
Lua-Funktionen
Abschnitt betitelt „Lua-Funktionen“| Funktion | Seite | Was sie tut |
|---|---|---|
L(key, vars) | client | Text in der Sprache des lokalen Spielers |
L(key, vars) | server | Text in der Standardsprache des Servers |
L(src, key, vars) | server | Text in der Sprache dieses Spielers |
Lp(src, key, vars) | server | Wie oben, nimmt immer einen Source |
BSLocale.T(lang, key, vars) | beide | Text in einer Sprache, die du nennst |
BSLocale.Lang() | beide | Sprache des lokalen Spielers (Client) oder die Standardsprache (Server) |
BSLocale.LangOf(src) | beide | Sprache eines Spielers, fällt auf die Standardsprache zurück |
BSLocale.Default() | beide | Server-Standard (GlobalState.bs_defaultLang, sonst en) |
BSLocale.IsValid(lang) | beide | Ob es einer der neun Codes ist |
BSLocale.Dict(lang) | beide | Die ganze Tabelle mit en darunter, für NUI |
BSLocale.OnChange(fn) | client | fn(lang) läuft, wenn sich die Sprache ändert |
BSLocale.Set(lang) | client | Bittet bs_core, die Sprache des Spielers zu ändern |
BSLocale.Languages, BSLocale.Native | beide | Die Codeliste und die Eigennamen |
Server-Export: exports.bs_core:GetLanguage(src).
Gib auf dem Server immer den Source des Spielers mit, wenn der Text an einen Spieler geht. L('key') ohne Source nutzt die Server-Standardsprache, und die ist für eine Benachrichtigung falsch.
TriggerClientEvent('bs:ui:notify', src, { type = 'success', message = L(src, 'shop.bought', { item = label, price = 50 }) })Zustand
Abschnitt betitelt „Zustand“- Wahl des Spielers: State Bag
bs_langam Spieler. - Server-Standard:
GlobalState.bs_defaultLang(F1Global.defaultLanguageoder die Convarbs_defaultLanguage). - Pro Account gespeichert in
bs_users.language. - Eine Änderung löst das Server-Event
bs_core:setLanguageaus.
Hat die Resource eine ui_page, beantwortet das Locale-Skript den NUI-Callback bs_i18n mit { lang, dict } und schickt die neue Tabelle, wenn sich die Sprache ändert. Lade den Helper und markiere dein HTML:
<script src="nui://bs_ui/html/js/i18n.js"></script><span data-i18n="ui.level">LEVEL</span>In JS: t('key', vars) und BSI18n.onChange(fn). Details unter Sprachen.
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.