Diller ve çeviriler
Oyun arayüzü 9 dilde çalışabilir: en, pt, de, pl, tr, es, fr, it, ru. Her metin henüz çevrilmedi, eksik olanlar İngilizceye düşer.
Nasıl çalışır
Section titled “Nasıl çalışır”- Her oyuncunun seçimi hesap başına kaydedilir (
bs_users.language,030_user_language.sqlmigrasyonuyla eklendi) ve oyuncununbs_langstate bag’inde yayınlanır. - Boş seçim “sunucu varsayılanını izle” demektir. Varsayılan F1
Global.defaultLanguage’den, yoksabs_defaultLanguageconvar’ından, yoksaen’den gelir.GlobalState.bs_defaultLangüzerindedir. - Oyuncular bunu envanterin Settings sekmesinden değiştirir. Bu
bs_core:setLanguagei tetikler ve her resource yeniden bağlanmadan canlı güncellenir. exports.bs_core:GetLanguage(src)sunucuda bir oyuncunun dilini verir.
Bir resource’u çevirmek
Section titled “Bir resource’u çevirmek”Şimdiye kadar locales/ klasörü olan resource’lar: bs_admin, bs_bodily, bs_boosters, bs_building, bs_chat, bs_cinecam, bs_core, bs_crafting, bs_drugs, bs_economy, bs_emotes, bs_events, bs_extraction, bs_faction_bases, bs_factions, bs_gadgets, bs_gates, bs_interactions, bs_inventory, bs_jobs, bs_medical, bs_menu, bs_mining, bs_multichar, bs_radial, bs_recycler, bs_scenes, bs_scoreboard, bs_skills, bs_stash, bs_tester, bs_traders, bs_ui, bs_vehicles, bs_vip, bs_weapons, bs_zombies.
Lua ve NUI fonksiyonları Locale API sayfasında.
1. fxmanifest
Section titled “1. fxmanifest”shared_script '@bs_core/shared/sh_locale.lua'files { 'locales/*.lua' }2. locales/<lang>.lua
Section titled “2. locales/<lang>.lua”Her dosya düz bir tablo döndürür. {name} bir placeholder’dır.
-- locales/en.luareturn { ['ui.level'] = 'LEVEL', ['msg.picked_up'] = 'You picked up {item}.',}en.luayı pt.luaya (ve diğerlerine) kopyala ve değerleri çevir. Anahtarları asla çevirme. Eksik bir anahtar İngilizceye, sonra anahtarın kendisine düşer, bu yüzden yarım kalmış bir dosya sorun değildir.
3. Lua
Section titled “3. Lua”-- client: the local player's languagelocal s = L('msg.picked_up', { item = 'Bandage' })
-- server: L(src, key, vars) or Lp(src, key, vars) uses that player's languageTriggerClientEvent('chat:addMessage', src, { args = { L(src, 'msg.picked_up', { item = 'Bandage' }) } })
-- server without a source: the server defaultprint(L('msg.picked_up', { item = 'Bandage' }))BSLocale.OnChange(function(lang) ... end) dil değiştiğinde client’ta çalışır, kendi oluşturduğun metinler için.
4. NUI
Section titled “4. NUI”Resource’un bir ui_pagei varsa locale betiği birleştirilmiş tabloyu sayfaya gönderir. Ortak helper’ı sayfa betiğinden önce yükle:
<script src="nui://bs_ui/html/js/i18n.js"></script>Sonra HTML’i işaretle. İşaretlemedeki İngilizce metin yedektir:
<span data-i18n="ui.level">LEVEL</span><p data-i18n-html="ui.help_html">Press <b>E</b></p><input data-i18n-attr="placeholder:ui.search;title:ui.search_tip" placeholder="Search">JS’te dinamik metni yeniden çizmek için t('key', { name: 'x' }) ve BSI18n.onChange(fn) kullan.
İpuçları
Section titled “İpuçları”- Anahtarları sabit ve gruplu tut (
ui.,msg.,err.). Bir anahtarı değiştirmek onun tüm çevirilerini bozar. - Sayıları sabit gömülü denge metinleri yazma, placeholder kullan ki sayı config’i takip etsin.
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.