TextAutoLanguage.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. /* 自定义多语言组件 */
  7. public class TextAutoLanguage : MonoBehaviour
  8. {
  9. [SerializeField] int textID;
  10. [SerializeField] RectTransform layoutRebuildObject;
  11. // static LanguageDefault language = new LanguageDefault();
  12. static LanguageDefault language = new LanguageDefault();
  13. static HashSet<TextAutoLanguage> textAutoLanguages = new HashSet<TextAutoLanguage>();
  14. public string[] textFormatArgs = {};
  15. public static void Init()
  16. {
  17. int id = PlayerPrefs.GetInt("Language", 0);
  18. ChangeLanguage((LanguageEnum) id);
  19. }
  20. public static void ChangeLanguage(LanguageEnum languageEnum)
  21. {
  22. if (languageEnum == LanguageEnum.Chinese) {
  23. language = new LanguageDefault();
  24. } else if (languageEnum == LanguageEnum.English) {
  25. language = new LanguageEnglish();
  26. }
  27. PlayerPrefs.SetInt("Language", ((int)languageEnum));
  28. foreach (var textAutoLanguage in textAutoLanguages)
  29. {
  30. try {
  31. textAutoLanguage.ApplyText();
  32. } catch (Exception) {}
  33. }
  34. }
  35. public static LanguageEnum GetLanguage()
  36. {
  37. if (language is LanguageEnglish) {
  38. return LanguageEnum.English;
  39. }
  40. return LanguageEnum.Chinese;
  41. }
  42. void Start()
  43. {
  44. textAutoLanguages.Add(this);
  45. ApplyText();
  46. }
  47. void OnDestroy()
  48. {
  49. textAutoLanguages.Remove(this);
  50. }
  51. public void SetText(int textID)
  52. {
  53. this.textID = textID;
  54. string text = language.GetType().GetField("text" + textID).GetValue(language).ToString();
  55. if (textFormatArgs.Length > 0)
  56. {
  57. text = String.Format(text, textFormatArgs);
  58. }
  59. this.GetComponent<Text>().text = text;
  60. if (layoutRebuildObject)
  61. {
  62. LayoutRebuilder.ForceRebuildLayoutImmediate(layoutRebuildObject);
  63. }
  64. }
  65. public int GetTextID()
  66. {
  67. return this.textID;
  68. }
  69. void ApplyText()
  70. {
  71. SetText(textID);
  72. }
  73. }
  74. public enum LanguageEnum {
  75. Chinese, English
  76. }
  77. class LanguageDefault {
  78. public string text0 = "";
  79. public string text1 = "昵 称 :";
  80. public string text2 = "手 机 号 :";
  81. public string text3 = "性 别 :";
  82. public string text4 = "出生日期 :";
  83. public string text5 = "国 籍 :";
  84. public string text6 = "所在地区 :";
  85. public string text7 = "保存";
  86. public string text8 = "男";
  87. public string text9 = "女";
  88. public string text10 = "未填写";
  89. public string text11 = "昵称不能为空";
  90. public string text12 = "保存成功";
  91. public string text13 = "我的";
  92. public string text14 = "连接";
  93. public string text15 = "正在连接";
  94. public string text16 = "连接成功";
  95. public string text17 = "断开连接";
  96. public string text18 = "神弓";
  97. public string text19 = "神箭";
  98. public string text20 = "设置";
  99. public string text21 = "教程";
  100. public string text22 = "商城";
  101. public string text23 = "设备";
  102. public string text24 = "用 户 名 :";
  103. public string text25 = "密 码 :";
  104. public string text26 = "忘记密码";
  105. public string text27 = "注册";
  106. public string text28 = "用 户 名 :";
  107. public string text29 = "密 码 :";
  108. public string text30 = "确认密码 :";
  109. public string text31 = "昵 称 :";
  110. public string text32 = "性 别 :";
  111. public string text33 = "登录";
  112. public string text34 = "手 机 号 :";
  113. public string text35 = "验 证 码 :";
  114. public string text36 = "新 密 码 :";
  115. public string text37 = "确认密码 :";
  116. public string text38 = "获取";
  117. public string text39 = "用户登录";
  118. public string text40 = "手机登录";
  119. public string text41 = "请输入用户名";
  120. public string text42 = "请输入密码";
  121. public string text43 = "登录成功";
  122. public string text44 = "密码错误";
  123. public string text45 = "该用户尚未注册";
  124. public string text46 = "用户名长度至少6位";
  125. public string text47 = "密码长度至少6位";
  126. public string text48 = "两次输入的密码不一致";
  127. public string text49 = "请输入游戏昵称";
  128. public string text50 = "该用户无法重复注册";
  129. public string text51 = "注册成功";
  130. public string text61 = "请连接设备";
  131. public string text62 = "关闭";
  132. public string text63 = "商品";
  133. public string text64 = "背包";
  134. public string text65 = "已装备";
  135. public string text66 = "购买";
  136. public string text67 = "属性";
  137. public string text68 = "操作难度 : ";
  138. public string text69 = "设备教程";
  139. public string text70 = "游戏教程";
  140. public string text71 = "角色选择";
  141. public string text72 = "玩家1";
  142. public string text73 = "玩家2";
  143. public string text74 = "开始游戏";
  144. public string text87 = "本轮玩家";
  145. public string text88 = "继续";
  146. public string text89 = "主页";
  147. public string text90 = "分享";
  148. public string text91 = "再来";
  149. public string text92 = "友谊赛";
  150. public string text93 = "当前玩家";
  151. public string text94 = "距离选择";
  152. public string text95 = "得分:";
  153. public string text96 = "新手教程";
  154. public string text97 = "返回主页";
  155. public string text98 = "完成";
  156. public string text99 = "闯关";
  157. public string text100 = "限时";
  158. public string text101 = "排行榜";
  159. public string text102 = "游戏";
  160. public string text103 = "登录";
  161. public string text104 = "结束";
  162. public string text105 = "胜利";
  163. public string text106 = "失败";
  164. public string text107 = "已售罄";
  165. public string text108 = "使用";
  166. public string text109 = "使用中";
  167. public string text110 = "取消";
  168. public string text111 = "需要装备倍镜";
  169. public string text112 = "需要装备射速卡";
  170. public string text113 = "弓";
  171. public string text114 = "箭";
  172. public string text115 = "第 {0} 局";
  173. public string text117 = "长度{0}~{1}位,限英文和数字";
  174. public string text118 = "靶子已超出当前射程,请加大拉距或去商城装备射速卡!";
  175. public string text119 = "长度{0}~{1}位,可使用中文";
  176. //设备页面
  177. public string text500 = "陀螺仪校准";
  178. public string text501 = "地磁计校准";
  179. public string text502 = "视角回正";
  180. public string text503 = "16G加速计";
  181. public string text504 = "64G加速计";
  182. //主页面
  183. public string text400 = "退出游戏";
  184. //设置页面
  185. public string text300 = "退出登录";
  186. public string text301 = "关于我们";
  187. public string text302 = "背景音乐";
  188. public string text303 = "音效";
  189. public string text304 = "语言";
  190. public string text305 = "简体中文";
  191. public string text306 = "十字准心";
  192. public string text307 = "开";
  193. public string text308 = "关";
  194. public string text309 = "射箭难度";
  195. public string text310 = "简单";
  196. public string text311 = "普通";
  197. public string text312 = "困难";
  198. public string text313 = "实际箭重";
  199. public string text314 = "{0}克";
  200. //设备校准页面
  201. public string text76 = "视角归位";
  202. public string text77 = "上一步";
  203. public string text78 = "下一步";
  204. public string text79 = "完成";
  205. public string text80 = "视角回正";
  206. public string text81 = "实体弓指向正前方,然后点击视角回正。";
  207. public string text82 = "开始校准";
  208. public string text83 = "停止校准";
  209. public string text84 = "尽量尝试多角度旋转模块,直到XYZ三个象限中多点形成圆形为止。";
  210. public string text85 = "开始校准";
  211. public string text86 = "校准时需要将瞄准模块静止放在桌面上。";
  212. public string text116 = "重新校准";
  213. public string text120 = "校准效果不理想,请重新校准!";
  214. public string text121 = "取消校准";
  215. //游戏场景通用UI信息
  216. public string text200 = "引导";
  217. public string text201 = "开镜";
  218. public string text202 = "加速";
  219. public string text203 = "视角归位";
  220. public string text204 = "查看靶子";
  221. public string text205 = "关闭";
  222. // 游戏规则
  223. public string text1000 = "在固定的时间内尽量射更多的箭。";
  224. public string text1001 = "总环数逐渐增加,挑战自己的纪录。";
  225. public string text2000 = "两个人轮流射箭,使用奥运会的规则进行PK。";
  226. public string text2001 = "比赛最多为5局,每局3支箭,交替射箭。";
  227. public string text2002 = "获胜者获得积分2分,打平各1分,输者不得积分。";
  228. public string text2003 = "先得6分者胜利,如5局打完是平局,则加赛一箭定胜负。";
  229. //道具名称
  230. public string text101000 = "{0}倍镜";
  231. public string text101001 = "{0}倍射速卡";
  232. // 道具介绍
  233. public string text111000 = "射箭瞄准时,视距放大{0}倍。";
  234. public string text111001 = "射箭时,射速增加{0}倍。";
  235. //设备名称
  236. public string text201000 = "18磅反曲弓";
  237. public string text201001 = "25磅反曲弓";
  238. public string text201002 = "碳纤维箭";
  239. // 设备介绍
  240. public string text211000 = "奥运比赛专用比赛弓";
  241. public string text211001 = "奥运比赛专用比赛弓";
  242. public string text211002 = "奥运比赛专用比赛箭";
  243. }
  244. class LanguageEnglish : LanguageDefault {
  245. public new string text1 = "Name :";
  246. public new string text2 = "Phone :";
  247. public new string text3 = "Gender :";
  248. public new string text4 = "Birthday :";
  249. public new string text5 = "Country :";
  250. public new string text6 = "Region :";
  251. public new string text7 = "Save";
  252. public new string text8 = "Male";
  253. public new string text9 = "Female";
  254. public new string text10 = "Not Filled In";
  255. public new string text11 = "Name Cannot Be Empty";
  256. public new string text12 = "Saved Successfully";
  257. public new string text13 = "Me";
  258. public new string text14 = "Connect";
  259. public new string text15 = "Trying";
  260. public new string text16 = "Activated";
  261. public new string text17 = "Break";
  262. public new string text18 = "Bow";
  263. public new string text19 = "Arrow";
  264. public new string text20 = "SetUp";
  265. public new string text21 = "Course";
  266. public new string text22 = "Shop";
  267. public new string text23 = "Device";
  268. public new string text24 = "Username:";
  269. public new string text25 = "Password:";
  270. public new string text26 = "Forget Password";
  271. public new string text27 = "Register";
  272. public new string text28 = "Username :";
  273. public new string text29 = "Password :";
  274. public new string text30 = "Confirm Password :";
  275. public new string text31 = "Nickname :";
  276. public new string text32 = "Gender :";
  277. public new string text33 = "Login";
  278. public new string text34 = "Phone :";
  279. public new string text35 = "Code :";
  280. public new string text36 = "Password :";
  281. public new string text37 = "Confirm Password :";
  282. public new string text38 = "Get";
  283. public new string text39 = "User Login";
  284. public new string text40 = "Phone Login";
  285. public new string text41 = "Please Enter Username";
  286. public new string text42 = "Please Enter Password";
  287. public new string text43 = "Login Successful";
  288. public new string text44 = "Wrong Password";
  289. public new string text45 = "User Not Register";
  290. public new string text46 = "Username At Least 6 Digits";
  291. public new string text47 = "Password At Least 6 Digits";
  292. public new string text48 = "Two Passwords Are Inconsistent";
  293. public new string text49 = "Please Enter Nickname";
  294. public new string text50 = "Unable To Re Register";
  295. public new string text51 = "Register Successful";
  296. public new string text61 = "Please Connect Device";
  297. public new string text62 = "Close";
  298. public new string text63 = "Products";
  299. public new string text64 = "Bag";
  300. public new string text65 = "Equipped";
  301. public new string text66 = "Buy";
  302. public new string text67 = "Property";
  303. public new string text68 = "Difficulty : ";
  304. public new string text69 = "Device Course";
  305. public new string text70 = "Game Course";
  306. public new string text71 = "Role Select";
  307. public new string text72 = "Player1";
  308. public new string text73 = "Player2";
  309. public new string text74 = "Start";
  310. public new string text87 = "Current Round Player";
  311. public new string text88 = "Continue";
  312. public new string text89 = "Home";
  313. public new string text90 = "Share";
  314. public new string text91 = "Again";
  315. public new string text92 = "PVP";
  316. public new string text93 = "Player";
  317. public new string text94 = "Distance Select";
  318. public new string text95 = "Score:";
  319. public new string text96 = "New Player Guide";
  320. public new string text97 = "Back";
  321. public new string text98 = "Complete";
  322. public new string text99 = "Pass";
  323. public new string text100 = "Limit";
  324. public new string text101 = "Rank";
  325. public new string text102 = "Game";
  326. public new string text103 = "Login";
  327. public new string text104 = "Over";
  328. public new string text105 = "Win";
  329. public new string text106 = "Lose";
  330. public new string text107 = "SoldOut";
  331. public new string text108 = "Use";
  332. public new string text109 = "Inuse";
  333. public new string text110 = "Cancel";
  334. public new string text111 = "Multiple Mirrors Is Required";
  335. public new string text112 = "Shoot Card Is Required";
  336. public new string text113 = "Bow";
  337. public new string text114 = "Arrow";
  338. public new string text115 = "Round {0}";
  339. public new string text117 = "Limit {0}~{1} Bit, English And Figures";
  340. public new string text118 = "The target has exceeded the current range, please increase the pull distance or go to the shop to equip the shoot card!";
  341. public new string text119 = "Limit {0}~{1} Bit, Can Use Chinese";
  342. //设备页面
  343. public new string text500 = "GyrCalibrate";
  344. public new string text501 = "MagCalibrate";
  345. public new string text502 = "Identity";
  346. public new string text503 = "16G Acc";
  347. public new string text504 = "64G Acc";
  348. //主页面
  349. public new string text400 = "Quit Game";
  350. //设置页面
  351. public new string text300 = "Quit Login";
  352. public new string text301 = "About Us";
  353. public new string text302 = "BGM";
  354. public new string text303 = "Sound";
  355. public new string text304 = "Language";
  356. public new string text305 = "English";
  357. public new string text306 = "CrossHair";
  358. public new string text307 = "ON";
  359. public new string text308 = "OFF";
  360. public new string text309 = "ShootLevel";
  361. public new string text310 = "Easy";
  362. public new string text311 = "Normal";
  363. public new string text312 = "Hard";
  364. public new string text313 = "ArrowWeight";
  365. public new string text314 = "{0}Gram";
  366. //设备校准页面
  367. public new string text76 = "Identity";
  368. public new string text77 = "Back";
  369. public new string text78 = "Next";
  370. public new string text79 = "Complete";
  371. public new string text80 = "Identity";
  372. public new string text81 = "Point the solid bow to the front, and then click \nthe angle of view to return to the front.";
  373. public new string text82 = "Calibrate";
  374. public new string text83 = "Stop";
  375. public new string text84 = "Try to rotate the module at multiple angles until \nmultiple points in the three quadrants of XYZ form a circle.";
  376. public new string text85 = "Calibrate";
  377. public new string text86 = "During calibration, the aiming module needs to be placed on the desktop.";
  378. public new string text116 = "Redo";
  379. public new string text120 = "The calibration effect is not ideal, please recalibrate!";
  380. public new string text121 = "Cancel";
  381. //游戏场景通用UI信息
  382. public new string text200 = "Guide";
  383. public new string text201 = "Scope";
  384. public new string text202 = "Acc";
  385. public new string text203 = "Identity";
  386. public new string text204 = "View Target";
  387. public new string text205 = "Close";
  388. // 游戏规则
  389. public new string text1000 = "Shoot as many arrows as you can at a fixed time.";
  390. public new string text1001 = "The total number of rings gradually increased, \nchallenging their own records.";
  391. public new string text2000 = "Two people arched in turn, using the rules of the Olympic Games PK.";
  392. public new string text2001 = "The maximum number of games is 5, 3 arrows in each game, \nshooting arrows alternately.";
  393. public new string text2002 = "The winner will get 2 points and 1 draw each. \nThe loser will not get points.";
  394. public new string text2003 = "If the first 6 points win, \nif it is a draw at the end of the 5 innings, \nthe game will be decided by one arrow.";
  395. //道具名称
  396. public new string text101000 = "{0}X Mirrors";
  397. public new string text101001 = "{0}X Shoot";
  398. // 道具介绍
  399. public new string text111000 = "When shooting, the sight distance is enlarged by {0} times.";
  400. public new string text111001 = "In archery, the speed increases by {0} times.";
  401. //设备名称
  402. public new string text201000 = "18 Pound Bow";
  403. public new string text201001 = "25 Pound Bow";
  404. public new string text201002 = "Carbon Giber Arrow";
  405. // 设备介绍
  406. public new string text211000 = "Special bow for Olympic Games.";
  407. public new string text211001 = "Special bow for Olympic Games.";
  408. public new string text211002 = "Special competition arrow for Olympic Games.";
  409. }