本地化服務是負責處理自動翻譯的服務。
它用於自動文字替換使用的 LocalizationTable 對象的儲存。
本地化服務只會使用其子本地化表格來自動替換文字,除非在 GUI 對象或其祖先上指定 GuiBase2d.RootLocalizationTable 。
概要
屬性
用於本地化核心和內部功能的本地 ID。
本地玩家為其操作系統設置的本地ID。
方法
返回一個列表的 LocalizationTable 對象,用於本地化核心腳本。
獲得所有用於自動本在地化的入口。
返回 Translator 用於使用載入的本地資料進行翻譯。
根據玩家的客戶端 IP 地理定位返回國家/地區代碼字串。
直到雲端 LocalizationTable 為論據本地載入了 - 如果可用。返回一個 Translator 實例,用於提供的本地進行翻譯。
直到雲端 LocalizationTable 為玩家的本地載入 - 如果可用。返回一個 Translator 實例,用於提供的本地進行翻譯。
屬性
SystemLocaleId
此屬性顯示本地玩家為其操作系統設置的本地ID。
這將返回帶有兩個字母代碼的字串 (例如, "en-us") 給本地。
請參閱Player.LocaleId,用戶為其 Roblox 帳戶設置的本地 ID,用於本地化體驗內容。當 Roblox 尚未內部支持該玩家的本地時,這將是不同的值。
方法
GetTableEntries
返回 Array ,其中每個返回的 Array 元素都是與在 LocalizationTable:GetEntries() 中描述的格式相同的 Array 的入口。返回的元素順序與 Array 中搜尋到的 LocalizationTables 的順序相同,用於嘗試自動本地化提供的 Instance 。特定 LocalizationTable 內的入口元素以未指定的順序返回。
此功能無論對象是否啟用 GuiBase2d 與 GuiBase2d.AutoLocalize ,都會返回入口。一個對象,如果是 GuiBase2d 將不會自動翻譯,除非 GuiBase2d.AutoLocalize 已啟用。
表的排序如下:
- 首先,它尋找最早的 GuiBase2d 對象祖先(包括提供的對物件),該對象具有 GuiBase2d.RootLocalizationTable 。表格將依照在 中所述的順序插入到那個 祖先的樹狀結構中。如果找不到這樣的 GuiBase2d.RootLocalizationTable,在此步驟中就不會插入任何表。如果 instance 是 nil,在此步驟中無表格附加。
- 接下來,從 LocalizationTable 層級下的表在 LocalizationService 添加。對於每個子 的 ,它會添加從服務的父輩表開始上升的表,一路到服務的子女。如果沒有 LocalizationService 的子女是 LocalizationTables ,則在此步驟中沒有表附加。
此功能不會產生。它不會等到雲端 LocalizationTable 載入為止。
參數
返回
一個集合的數陣,每個數陣的格式與在 LocalizationTable:GetEntries() 中所述的相同。
GetTranslatorForPlayer
此功能接受一名玩家作為參數,並返回一個 Translator 實例,可用於執行該本地語言的翻譯,如果可用的話。用於本地化的入口是由 階層提供的入口,以及雲端的 ,如果可用且已加載。這將是由 LocalizationService:GetTableEntries(nil) 返回的相同入口集。
此功能不會產生。它不會等到雲端 LocalizationTable 載入為止。
也見:
- LocalizationService:GetTranslatorForPlayerAsync() 具有與此函數相同的功能,除了它必須等到雲端 LocalizationTable 已載入才能使用。
- LocalizationService:GetTranslatorForLocaleAsync() , 返回可用於使用提供的本地進行翻譯的翻譯器。
參數
你正在獲得 Player 的那個 Translator 。
返回
指定的本地的 Translator 實例。
範例程式碼
This code sample attempts to retrieve a Translator object for the local player. LocalizationService:GetTranslatorForPlayerAsync() is wrapped in a pcall because it may error. If it does not error and returns a Translator, it translates and prints "Hello World!" in the player's language. If the function errors, it prints "GetTranslatorForLocaleAsync failed:" followed by the error message.
LocalizationService:GetTranslatorForPlayer() can also be used if you'd like to get the player's translator without yielding until the function returns.
local LocalizationService = game:GetService("LocalizationService")
local Players = game:GetService("Players")
local textLabel = script.Parent
local success, translator = pcall(function()
return LocalizationService:GetTranslatorForPlayerAsync(Players.LocalPlayer)
end)
if success then
local result = translator:Translate(textLabel, "Hello World!")
print(result)
else
print("GetTranslatorForPlayerAsync failed: " .. translator)
end
GetCountryRegionForPlayerAsync
根據玩家的客戶端 IP 地理定位,返回國家/地區代碼字串。支持的國家/地區代碼如下:
<th>國家/地區</th></tr></thead><tbody><tr><td>US</td><td>美國</td></tr><tr><td>GB</td><td>英國</td></tr><tr><td>CA</td><td>加拿大</td></tr><tr><td>AF</td><td>阿富汗</td></tr><tr><td>AX</td><td>艾蘭群島</td></tr><tr><td>AL</td><td>阿爾巴尼亞</td></tr><tr><td>DZ</td><td>阿爾及利亞</td></tr><tr><td>AS</td><td>美國薩摩亞</td></tr><tr><td>AD</td><td>安道拉</td></tr><tr><td>AO</td><td>安哥拉</td></tr><tr><td>AI</td><td>安圭拉</td></tr><tr><td>AQ</td><td>南極洲</td></tr><tr><td>AG</td><td>安提瓜和巴布達</td></tr><tr><td>AR</td><td>阿根廷</td></tr><tr><td>AM</td><td>亞美尼亞</td></tr><tr><td>AW</td><td>阿魯巴</td></tr><tr><td>AU</td><td>澳洲</td></tr><tr><td>AT</td><td>奧地利</td></tr><tr><td>AZ</td><td>亞歷浦堡</td></tr><tr><td>BS</td><td>巴哈馬</td></tr><tr><td>BH</td><td>巴林</td></tr><tr><td>BD</td><td>孟買</td></tr><tr><td>BB</td><td>巴巴多斯</td></tr><tr><td>BY</td><td>白俄羅斯</td></tr><tr><td>BE</td><td>比利時</td></tr><tr><td>BZ</td><td>貝利茲</td></tr><tr><td>BJ</td><td>貝寧</td></tr><tr><td>BM</td><td>百慕大</td></tr><tr><td>BT</td><td>按鍵 Bhutan</td></tr><tr><td>BO</td><td>玻利尼亞</td></tr><tr><td>BQ</td><td>博弗特島、聖埃斯特提亞斯和薩巴</td></tr><tr><td>BA</td><td>波斯尼亞和黑塞哥維納</td></tr><tr><td>BW</td><td>博茨瓦納</td></tr><tr><td>BV</td><td>勃朗登島</td></tr><tr><td>BR</td><td>巴西</td></tr><tr><td>IO</td><td>英國印度洋領地</td></tr><tr><td>BN</td><td>布朗尼達魯薩蘭</td></tr><tr><td>BG</td><td>保加利亞</td></tr><tr><td>BF</td><td>布基納法索</td></tr><tr><td>BI</td><td>緬甸</td></tr><tr><td>KH</td><td>柬埼比亞</td></tr><tr><td>CM</td><td>喀麦隆</td></tr><tr><td>CV</td><td>佛得角</td></tr><tr><td>KY</td><td>開曼群島</td></tr><tr><td>CF</td><td>中非共和國</td></tr><tr><td>TD</td><td>查德</td></tr><tr><td>CL</td><td>智利</td></tr><tr><td>CN</td><td>中國</td></tr><tr><td>CX</td><td>聖誕島</td></tr><tr><td>CC</td><td>科科斯群島</td></tr><tr><td>CO</td><td>哥倫比亞</td></tr><tr><td>KM</td><td>科摩羅斯</td></tr><tr><td>CG</td><td>剛果</td></tr><tr><td>CD</td><td>剛果(DRC)</td></tr><tr><td>CK</td><td>庫克群島</td></tr><tr><td>CR</td><td>哥斯大黎加</td></tr><tr><td>CI</td><td>象牙海岸</td></tr><tr><td>HR</td><td>克羅地亞</td></tr><tr><td>CW</td><td>庫拉索</td></tr><tr><td>CY</td><td>賽普勒斯</td></tr><tr><td>CZ</td><td>捷克共和國</td></tr><tr><td>DK</td><td>丹麥</td></tr><tr><td>DJ</td><td>吉布提</td></tr><tr><td>DM</td><td>多米尼加</td></tr><tr><td>DO</td><td>多明尼加共和國</td></tr><tr><td>EC</td><td>厄瓜多爾</td></tr><tr><td>EG</td><td>埃及</td></tr><tr><td>SV</td><td>薩爾瓦多</td></tr><tr><td>GQ</td><td>厄瓜多爾幾內亞</td></tr><tr><td>ER</td><td>厄里特拉</td></tr><tr><td>EE</td><td>愛沙尼亞</td></tr><tr><td>ET</td><td>埃及</td></tr><tr><td>FK</td><td>福克蘭群島(馬爾維納斯)</td></tr><tr><td>FO</td><td>芬蘭群島</td></tr><tr><td>FJ</td><td>菲律賓</td></tr><tr><td>FI</td><td>芬兰</td></tr><tr><td>FR</td><td>法國</td></tr><tr><td>GF</td><td>法國圭亞那</td></tr><tr><td>PF</td><td>法國波利尼西亞</td></tr><tr><td>TF</td><td>法國南部領土</td></tr><tr><td>GA</td><td>加蓬</td></tr><tr><td>GM</td><td>加蓬</td></tr><tr><td>GE</td><td>喬治亞</td></tr><tr><td>DE</td><td>德國</td></tr></tbody>
代碼 |
---|
<th>國家/地區</th></tr></thead><tbody><tr><td>GH</td><td>加纳</td></tr><tr><td>GI</td><td>吉布拉爾薩</td></tr><tr><td>GR</td><td>希臘</td></tr><tr><td>GL</td><td>綠地</td></tr><tr><td>GD</td><td>格林納達</td></tr><tr><td>GP</td><td>瓜德羅普島</td></tr><tr><td>GU</td><td>關島</td></tr><tr><td>GT</td><td>瓜地馬拉</td></tr><tr><td>GG</td><td>根西島</td></tr><tr><td>GN</td><td>幾內亞</td></tr><tr><td>GW</td><td>瓦倫西納-比索au</td></tr><tr><td>GY</td><td>圭亞那</td></tr><tr><td>HT</td><td>海地</td></tr><tr><td>HM</td><td>赫德島和麥當勞島</td></tr><tr><td>VA</td><td>聖見</td></tr><tr><td>HN</td><td>洪都拉斯</td></tr><tr><td>HK</td><td>香港</td></tr><tr><td>HU</td><td>匈牙利</td></tr><tr><td>IS</td><td>冰島</td></tr><tr><td>IN</td><td>印度</td></tr><tr><td>ID</td><td>印度尼西亞</td></tr><tr><td>IQ</td><td>伊拉克</td></tr><tr><td>IE</td><td>愛爾蘭</td></tr><tr><td>IM</td><td>曼島</td></tr><tr><td>IL</td><td>以色列</td></tr><tr><td>IT</td><td>意大利</td></tr><tr><td>JM</td><td>牙買加</td></tr><tr><td>JP</td><td>日本</td></tr><tr><td>JE</td><td>球衣</td></tr><tr><td>JO</td><td>俄亥俄州</td></tr><tr><td>KZ</td><td>哈薩克斯坦</td></tr><tr><td>KE</td><td>肯亞</td></tr><tr><td>KI</td><td>基里巴斯</td></tr><tr><td>KR</td><td>韓國</td></tr><tr><td>KW</td><td>科威特</td></tr><tr><td>KG</td><td>吉爾吉斯斯坦</td></tr><tr><td>LA</td><td>拉邁</td></tr><tr><td>LV</td><td>拉脫維亞</td></tr><tr><td>LB</td><td>利比亞</td></tr><tr><td>LS</td><td>萊索托</td></tr><tr><td>LR</td><td>利比亞</td></tr><tr><td>LY</td><td>利比亞</td></tr><tr><td>LI</td><td>列支敦士登</td></tr><tr><td>LT</td><td>立陶宛</td></tr><tr><td>LU</td><td>盧森堡</td></tr><tr><td>MO</td><td>澳門</td></tr><tr><td>MK</td><td>馬其靈</td></tr><tr><td>MG</td><td>馬達加斯加</td></tr><tr><td>MW</td><td>馬拉維</td></tr><tr><td>MY</td><td>馬來西亞</td></tr><tr><td>MV</td><td>馬爾代夫</td></tr><tr><td>ML</td><td>馬里</td></tr><tr><td>MT</td><td>馬耳他</td></tr><tr><td>MH</td><td>馬紹爾群島</td></tr><tr><td>MQ</td><td>馬丁尼克</td></tr><tr><td>MR</td><td>毛里塔尼亞</td></tr><tr><td>MU</td><td>馬達加斯加</td></tr><tr><td>YT</td><td>馬約特</td></tr><tr><td>MX</td><td>墨西哥</td></tr><tr><td>FM</td><td>微瓦尼亞</td></tr><tr><td>MD</td><td>摩爾多瓦</td></tr><tr><td>MC</td><td>摩納哥</td></tr><tr><td>MN</td><td>蒙古</td></tr><tr><td>ME</td><td>蒙特內哥羅</td></tr><tr><td>MS</td><td>蒙特塞拉特</td></tr><tr><td>MA</td><td>摩洛哥</td></tr><tr><td>MZ</td><td>莫桑比克</td></tr><tr><td>MM</td><td>緬甸</td></tr><tr><td>NA</td><td>納米比亞</td></tr><tr><td>NR</td><td>納瓦羅</td></tr><tr><td>NP</td><td>尼泊尔</td></tr><tr><td>NL</td><td>荷蘭</td></tr><tr><td>AN</td><td>荷蘭安提瓦斯群島</td></tr><tr><td>NC</td><td>新加坡</td></tr><tr><td>NZ</td><td>新西蘭</td></tr><tr><td>NI</td><td>尼加拉瓜</td></tr><tr><td>NE</td><td>尼日利亞</td></tr><tr><td>NG</td><td>尼日利亞</td></tr><tr><td>NU</td><td>尼瓦</td></tr><tr><td>NF</td><td>諾福克島</td></tr><tr><td>MP</td><td>北馬里亞納群島</td></tr><tr><td>NO</td><td>挪威</td></tr><tr><td>OM</td><td>阿曼</td></tr></tbody>
代碼 |
---|
<th>國家/地區</th></tr></thead><tbody><tr><td>PK</td><td>巴基斯坦</td></tr><tr><td>PW</td><td>帕勞</td></tr><tr><td>PS</td><td>巴勒斯坦</td></tr><tr><td>PA</td><td>巴拿马</td></tr><tr><td>PG</td><td>紐幾內亞 Papua New Guinea</td></tr><tr><td>PY</td><td>巴拉圭</td></tr><tr><td>PE</td><td>祕魯</td></tr><tr><td>PH</td><td>菲律賓</td></tr><tr><td>PN</td><td>皮特克恩群島</td></tr><tr><td>PL</td><td>波蘭</td></tr><tr><td>PT</td><td>葡萄牙</td></tr><tr><td>PR</td><td>波多黎各</td></tr><tr><td>QA</td><td>卡達</td></tr><tr><td>RE</td><td>重聚</td></tr><tr><td>RO</td><td>羅馬尼亞</td></tr><tr><td>RU</td><td>俄羅斯聯盟</td></tr><tr><td>RW</td><td>盧旺達</td></tr><tr><td>BL</td><td>聖巴泰勒米</td></tr><tr><td>SH</td><td>聖海倫娜、晉升和特里斯坦達庫納哈</td></tr><tr><td>KN</td><td>聖基茨和尼維斯</td></tr><tr><td>LC</td><td>聖盧西亞</td></tr><tr><td>MF</td><td>聖馬丁</td></tr><tr><td>PM</td><td>聖皮埃爾和密克隆</td></tr><tr><td>VC</td><td>聖文森特和格林納丁斯</td></tr><tr><td>WS</td><td>薩摩亞</td></tr><tr><td>SM</td><td>聖馬利諾</td></tr><tr><td>ST</td><td>聖多美普林西比</td></tr><tr><td>SA</td><td>沙維爾蘭</td></tr><tr><td>SN</td><td>塞內加爾</td></tr><tr><td>RS</td><td>塞爾維亞</td></tr><tr><td>SC</td><td>塞薩爾斯</td></tr><tr><td>SL</td><td>獅子山</td></tr><tr><td>SG</td><td>新加波</td></tr><tr><td>SX</td><td>聖馬丁</td></tr><tr><td>SK</td><td>斯洛伐克</td></tr><tr><td>SI</td><td>斯洛維尼亞</td></tr><tr><td>SB</td><td>索洛蒙群島</td></tr><tr><td>SO</td><td>索馬里</td></tr><tr><td>ZA</td><td>南非</td></tr><tr><td>GS</td><td>南喬治亞和南桑威奇群島</td></tr><tr><td>SS</td><td>南蘇丹</td></tr><tr><td>ES</td><td>西班牙</td></tr><tr><td>LK</td><td>斯里蘭卡</td></tr><tr><td>SR</td><td>蘇里南</td></tr><tr><td>SJ</td><td>斯瓦爾巴和扬馬延</td></tr><tr><td>SZ</td><td>斯瓦迪蘭</td></tr><tr><td>SE</td><td>瑞典</td></tr><tr><td>CH</td><td>瑞士</td></tr><tr><td>TW</td><td>台灣</td></tr><tr><td>TJ</td><td>塔吉克斯坦</td></tr><tr><td>TZ</td><td>坦桑尼亞</td></tr><tr><td>TH</td><td>泰國</td></tr><tr><td>TL</td><td>茨莫斯-東帝敘</td></tr><tr><td>TG</td><td>托哥</td></tr><tr><td>TK</td><td>托克拉우</td></tr><tr><td>TO</td><td>托加</td></tr><tr><td>TT</td><td>特里尼達和托巴哥</td></tr><tr><td>TN</td><td>突尼斯</td></tr><tr><td>TR</td><td>土耳其 (土耳其)</td></tr><tr><td>TM</td><td>土庫曼斯坦</td></tr><tr><td>TC</td><td>土克斯和凱科斯群島</td></tr><tr><td>TV</td><td>圖瓦魯</td></tr><tr><td>UG</td><td>烏干達</td></tr><tr><td>使用者獲取A</td><td>烏克蘭</td></tr><tr><td>AE</td><td>阿拉伯聯合酋長國</td></tr><tr><td>UM</td><td>美國小島嶼</td></tr><tr><td>UY</td><td>烏拉圭</td></tr><tr><td>UZ</td><td>烏茲別克斯坦</td></tr><tr><td>VU</td><td>瓦努阿圖</td></tr><tr><td>VE</td><td>玻利維亞</td></tr><tr><td>VN</td><td>越南</td></tr><tr><td>VG</td><td>英國維京島 (British)</td></tr><tr><td>VI</td><td>美國 Virgin Islands(US)</td></tr><tr><td>WF</td><td>瓦利斯和富圖納</td></tr><tr><td>EH</td><td>西撒哈拉</td></tr><tr><td>YE</td><td>也門</td></tr><tr><td>ZM</td><td>扎米比亞</td></tr><tr><td>ZW</td><td>紹薩貝瓦斯(Zimbabwe)</td></tr><tr><td>CU</td><td>古巴</td></tr><tr><td>IR</td><td>伊朗</td></tr><tr><td>SY</td><td>烏克蘭</td></tr><tr><td>KP</td><td>北韓</td></tr></tbody>
代碼 |
---|
也見:
- PolicyService:GetPolicyInfoForPlayerAsync() , 返回基於地理定位、年齡組和平台的玩家政策資訊
參數
你正在取得國家/地區資訊的玩家。
返回
指示玩家國家/地區代碼的字串。
範例程式碼
This code sample gets the country/region code for a local player and prints "Hello, friend from Canada!" if the player's client IP geolocation is Canada.
local LocalizationService = game:GetService("LocalizationService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local result, code = pcall(LocalizationService.GetCountryRegionForPlayerAsync, LocalizationService, player)
if result and code == "CA" then
print("Hello, friend from Canada!")
else
print("GetCountryRegionForPlayerAsync failed: " .. code)
end
GetTranslatorForLocaleAsync
此功能會將本地代碼作為參數,直到雲端 LocalizationTable 載入該本地代碼為止,如果可用。然後返回一個 Translator 對象,可用於執行該本地的翻譯,如果有可用的話。用於本地化的入口是由 階層提供的入口,以及雲端表 (如果可用)。這將是由 LocalizationService:GetTableEntries(nil) 返回的相同入口集。
此功能可能發生錯誤,因此應該被包裝在 pcall() 中。
也見:
- LocalizationService:GetTranslatorForPlayer() 獲得與提供的玩家本地相對應的翻譯者。此功能已過時,不應在新工作中使用。
- LocalizationService:GetTranslatorForPlayerAsync() 輸出直到雲端 LocalizationTable 為提供的玩家的本地載入,然後獲得與提供的玩家本地相對應的翻譯器。
參數
Roblox 支持的語言或本地代碼。
返回
指定的本地的 Translator 實例。
範例程式碼
This code sample attempts to retrieve a Translator object for the locale "fr" (French).
LocalizationService:GetTranslatorForLocaleAsync() is wrapped in a pcall because it may error. If it does not error and returns a Translator, prints "Hello in French:" followed by the French translation of "Hello World!". If the function errors, it prints "GetTranslatorForLocaleAsync failed:" followed by the error message.
local LocalizationService = game:GetService("LocalizationService")
local textLabel = script.Parent
local success, translator = pcall(function()
return LocalizationService:GetTranslatorForLocaleAsync("fr")
end)
if success then
local result = translator:Translate(textLabel, "Hello World!")
print("Hello in French: " .. result)
else
print("GetTranslatorForLocaleAsync failed: " .. translator)
end
GetTranslatorForPlayerAsync
此功能將玩家作為參數,直到雲端 LocalizationTable 載入該玩家的本地,如果可用,才會返回。然後返回一個 Translator 對象,可用於執行該本地的翻譯,如果有可用的話。用於本地化的入口是由 階層提供的入口,以及雲端表 (如果可用)。這將是由 LocalizationService:GetTableEntries(nil) 返回的相同入口集。
此功能可能發生錯誤,因此應該被包裝在 pcall() 中。
也見:
- LocalizationService:GetTranslatorForPlayer() , 與此功能相同,除了它不會產生並等待雲端 LocalizationTable 為玩家的本地載入之前。此功能已過時,不應在新工作中使用。
- LocalizationService:GetTranslatorForLocaleAsync() , 返回可用於使用提供的本地進行翻譯的翻譯器。
參數
你正在獲得 Player 的那個 Translator 。
返回
指定的本地的 Translator 實例。
範例程式碼
This code sample attempts to retrieve a Translator object for the local player. LocalizationService:GetTranslatorForPlayerAsync() is wrapped in a pcall because it may error. If it does not error and returns a Translator, it translates and prints "Hello World!" in the player's language. If the function errors, it prints "GetTranslatorForLocaleAsync failed:" followed by the error message.
LocalizationService:GetTranslatorForPlayer() can also be used if you'd like to get the player's translator without yielding until the function returns.
local LocalizationService = game:GetService("LocalizationService")
local Players = game:GetService("Players")
local textLabel = script.Parent
local success, translator = pcall(function()
return LocalizationService:GetTranslatorForPlayerAsync(Players.LocalPlayer)
end)
if success then
local result = translator:Translate(textLabel, "Hello World!")
print(result)
else
print("GetTranslatorForPlayerAsync failed: " .. translator)
end