本地化服务是负责处理自动翻译的服务。
它用作自动文本替换使用的 LocalizationTable 对象的存储。
本地化服务只会使用其子本地化表格来自动替换文本,除非在 GUI 对象或其祖先上指定 GuiBase2d.RootLocalizationTable 。
概要
属性
用于本地化核心和内部功能的本地 ID。
本地玩家为其操作系统设置的本地ID。
方法
返回用于本地化核心脚本的一列 LocalizationTable 对象列表。
获取用于自动本地化的所有入口。
返回一个 Translator 用于使用加载的本地数据进行翻译。
根据玩家的客户端 IP 地理定位返回国家/地区代码字符串。
直到云端 LocalizationTable 为争论本地已加载 - 如果可用。返回一个 Translator 实例,用于为提供的本地进行翻译。
直到云端 LocalizationTable 为玩家的本地已加载 - 如果可用。返回一个 Translator 实例,用于为提供的本地进行翻译。
属性
SystemLocaleId
此属性显示了本地玩家为其操作系统设置的本地ID。
这将返回带有两个字母代码(例如,“en-us”)的字符串给本地。
还请参阅Player.LocaleId ,用户为其 Roblox 帐户设置的本地 ID,用于本地化体验内容。当 Roblox 尚未内部支持该玩家的本地时,这将是不同的值。
方法
GetTableEntries
返回一个 , 其中每个元素的返回 是与在 中描述的相同格式的输入的自己。返回的元素顺序与 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>Algeria阿尔及利亚</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>几内亚比索</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>Niue</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>帕劳新几内亚</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>Virgin Islands (英国)</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>赞比亚</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