| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- /* 自定义多语言组件 */
- public class TextAutoLanguage : MonoBehaviour
- {
- [SerializeField] int textID;
- [SerializeField] RectTransform layoutRebuildObject;
- static LanguageEnum currentLanguageEnum = LanguageEnum.Chinese;
- static LanguageDefault language = null;
- static HashSet<TextAutoLanguage> textAutoLanguages = new HashSet<TextAutoLanguage>();
- public string[] textFormatArgs = {};
- [SerializeField] LanguageFontSize[] languageFontSizes = {};
- private static bool inited = false;
- public static void Init()
- {
- if (inited) return;
- inited = true;
- int id = PlayerPrefs.GetInt("Language", 0);
- ChangeLanguage((LanguageEnum) id);
- }
- public static void ChangeLanguage(LanguageEnum languageEnum)
- {
- currentLanguageEnum = languageEnum;
- if (languageEnum == LanguageEnum.English) {
- language = new LanguageEnglish();
- } else {
- language = new LanguageDefault();
- }
- PlayerPrefs.SetInt("Language", ((int)languageEnum));
- foreach (var textAutoLanguage in textAutoLanguages)
- {
- try {
- textAutoLanguage.ApplyText();
- } catch (Exception e) { Debug.LogError(e.Message); }
- }
- }
- public static LanguageEnum GetLanguage()
- {
- Init();
- if (language is LanguageEnglish) {
- return LanguageEnum.English;
- }
- return LanguageEnum.Chinese;
- }
- void Awake()
- {
- Init();
- }
- void Start()
- {
- textAutoLanguages.Add(this);
- ApplyText();
- }
- void OnDestroy()
- {
- textAutoLanguages.Remove(this);
- }
- /**记录组件的默认字体大小 */
- private int defaultFontSize = -1;
- public void SetText(int textID)
- {
- this.textID = textID;
- string text = language.GetType().GetField("text" + textID).GetValue(language).ToString();
- if (textFormatArgs.Length > 0)
- {
- text = String.Format(text, textFormatArgs);
- }
- Text textComp = GetComponent<Text>();
- textComp.text = text;
- //如果有指定当前语言的字体大小,就更新字体大小,否则恢复默认字体大小
- if (defaultFontSize == -1) { //首次记录组件的默认字体大小
- defaultFontSize = textComp.fontSize;
- } else {
- textComp.fontSize = defaultFontSize;
- }
- if (languageFontSizes.Length > 0) {
- foreach (var languageFontSize in languageFontSizes)
- {
- if (languageFontSize.language == currentLanguageEnum) {
- textComp.fontSize = languageFontSize.fontSize;
- }
- }
- }
- //重置指定节点的布局
- if (layoutRebuildObject)
- {
- LayoutRebuilder.ForceRebuildLayoutImmediate(layoutRebuildObject);
- }
- }
- public int GetTextID()
- {
- return this.textID;
- }
- void ApplyText()
- {
- SetText(textID);
- }
- }
- class LanguageDefault {
- public string text0 = "";
- public string text1 = "昵 称 :";
- public string text2 = "手 机 号 :";
- public string text3 = "性 别 :";
- public string text4 = "出生日期 :";
- public string text5 = "国 籍 :";
- public string text6 = "所在地区 :";
- public string text7 = "保存";
- public string text8 = "男";
- public string text9 = "女";
- public string text10 = "未填写";
- public string text11 = "昵称不能为空";
- public string text12 = "保存成功";
- public string text13 = "我的";
- public string text14 = " 连接 ";
- public string text15 = "正在连接";
- public string text16 = "连接成功";
- public string text17 = "断开连接";
- public string text18 = "神弓";
- public string text19 = "神箭";
- public string text20 = "设置";
- public string text21 = "教程";
- public string text22 = "商城";
- public string text23 = "设备";
- public string text24 = "账 号 :";
- public string text25 = "密 码 :";
- public string text26 = "找回密码";
- public string text27 = "新用户注册";
- public string text28 = "账 号 :";
- public string text29 = "密 码 :";
- public string text30 = "确认密码 :";
- public string text31 = "昵 称 :";
- public string text32 = "性 别 :";
- public string text33 = "登录";
- public string text34 = "手 机 号 :";
- public string text35 = "验 证 码 :";
- public string text36 = "新 密 码 :";
- public string text37 = "确认密码 :";
- public string text38 = "获取";
- public string text39 = "账 号";
- public string text40 = "手机号";
- public string text41 = "请输入账号";
- public string text42 = "请输入密码";
- public string text43 = "登录成功";
- public string text44 = "密码错误";
- public string text45 = "该用户尚未注册";
- public string text46 = "账号长度至少6位";
- public string text47 = "密码长度至少6位";
- public string text48 = "两次输入的密码不一致";
- public string text49 = "请输入游戏昵称";
- public string text50 = "该用户无法重复注册";
- public string text51 = "注册成功";
- public string text61 = "请连接设备";
- public string text62 = "关闭";
- public string text63 = "商品";
- public string text64 = "背包";
- public string text65 = "已装备";
- public string text66 = "购买";
- public string text67 = "属性";
- public string text68 = "操作难度 : ";
- public string text69 = "设备教程";
- public string text70 = "游戏教程";
- public string text71 = "角色选择";
- public string text72 = "玩家1";
- public string text73 = "玩家2";
- public string text74 = "开始游戏";
- public string text87 = "本轮玩家";
- public string text88 = "继续";
- public string text89 = "主页";
- public string text90 = "分享";
- public string text91 = "再来";
- public string text92 = "友谊赛";
- public string text93 = "当前玩家";
- public string text94 = "选择距离";
- public string text95 = "得分:";
- public string text96 = "新手教程";
- public string text97 = "返回主页";
- public string text98 = "完成";
- public string text99 = "闯关";
- public string text100 = "限时";
- public string text101 = "排行榜";
- public string text102 = "游戏";
- public string text103 = "绑定";
- public string text104 = "结束";
- public string text105 = "胜利";
- public string text106 = "失败";
- public string text107 = "已售罄";
- public string text108 = "使用";
- public string text109 = "使用中";
- public string text110 = "取消";
- public string text111 = "需要装备倍镜";
- public string text112 = "需要装备射速卡";
- public string text113 = "弓";
- public string text114 = "箭";
- public string text115 = "第 {0} 局";
- public string text117 = "长度{0}~{1}位,限英文和数字";
- public string text118 = "靶子已超出当前射程,请加大拉距或去商城装备射速卡!";
- public string text119 = "长度{0}~{1}位,可使用中文";
- //设备页面
- public string text500 = "陀螺仪初始化";
- public string text501 = "地磁计初始化";
- public string text502 = "视角回正";
- public string text503 = "16G加速计";
- public string text504 = "64G加速计";
- //主页面
- public string text122 = "排行榜";
- public string text123 = "好友";
- public string text124 = "开始游戏";
- public string text125 = "联机游戏";
- //我的
- public string text126 = "编 号 :";
- //开始游戏
- public string text133 = "开始游戏";
- public string text127 = "闯关游戏";
- public string text128 = "限时游戏";
- public string text129 = "PK游戏";
- //PK模式选择页面
- public string text132 = "PK模式";
- public string text130 = "静止靶PK";
- public string text131 = "闯关PK";
- public string text401 = "选择关卡";
- //关卡选择
- public string text134 = "游戏模式";
- public string text135 = "野兔关卡";
- public string text136 = "野鸡关卡";
- public string text137 = "野狼关卡";
- //设置页面
- public string text302 = "背景音乐";
- public string text303 = "音效";
- public string text304 = "语言";
- public string text305 = "简体中文";
- public string text306 = "十字准心";
- public string text307 = "开";
- public string text308 = "关";
- public string text309 = "射箭难度";
- public string text310 = "简单";
- public string text311 = "普通";
- public string text312 = "困难";
- public string text313 = "实际箭重";
- public string text314 = "{0}克";
- //SetUpView1
- public string text315 = "游戏设置";
- public string text318 = "新手引导";
- public string text301 = "关于我们";
- public string text316 = "用户协议";
- public string text317 = "隐私政策";
- public string text300 = "退出登录";
- public string text400 = "退出游戏";
- //设备校准页面
- public string text76 = "视角归位";
- public string text77 = "上一步";
- public string text78 = "下一步";
- public string text79 = "完成";
- public string text80 = "视角回正";
- public string text81 = "实体弓指向正前方,然后点击视角回正。";
- public string text82 = "开始初始化";
- public string text83 = "停止初始化";
- public string text84 = "尽量尝试多角度旋转模块,直到XYZ三个象限中多点形成圆形为止。";
- public string text85 = "开始初始化";
- public string text86 = "校准时需要将瞄准模块静止放在桌面上。";
- public string text116 = "重新初始化";
- public string text120 = "校准效果不理想,请重新校准!";
- public string text121 = "取消初始化";
- //游戏场景通用UI信息
- public string text200 = "引导";
- public string text201 = "开镜";
- public string text202 = "加速";
- public string text203 = "视角归位";
- public string text204 = "查看靶子";
- public string text205 = "关闭";
- // 游戏规则
- public string text1000 = "在固定的时间内尽量射更多的箭。";
- public string text1001 = "总环数逐渐增加,挑战自己的纪录。";
- public string text2000 = "两个人轮流射箭,使用奥运会的规则进行PK。";
- public string text2001 = "比赛最多为5局,每局3支箭,交替射箭。";
- public string text2002 = "获胜者获得积分2分,打平各1分,输者不得积分。";
- public string text2003 = "先得6分者胜利,如5局打完是平局,则加赛一箭定胜负。";
- //道具名称
- public string text101000 = "{0}倍镜";
- public string text101001 = "{0}倍射速卡";
- // 道具介绍
- public string text111000 = "射箭瞄准时,视距放大{0}倍。";
- public string text111001 = "射箭时,射速增加{0}倍。";
- //设备名称
- public string text200000 = "反曲弓";
- public string text201000 = "18磅反曲弓";
- public string text201001 = "25磅反曲弓";
- public string text201002 = "碳纤维箭";
- // 设备介绍
- public string text211000 = "奥运比赛专用比赛弓";
- public string text211001 = "奥运比赛专用比赛弓";
- public string text211002 = "奥运比赛专用比赛箭";
- //审核时用到的临时文字-设置页面
- public string text1234560 = "基础设置";
- public string text1234561 = "退出应用";
- public string text1234562 = "开始";
- public string text1234563 = "联机";
- }
- class LanguageEnglish : LanguageDefault {
- public new string text1 = "Name :";
- public new string text2 = "Phone :";
- public new string text3 = "Gender :";
- public new string text4 = "Birthday :";
- public new string text5 = "Country :";
- public new string text6 = "Region :";
- public new string text7 = "Save";
- public new string text8 = "Male";
- public new string text9 = "Female";
- public new string text10 = "Not Filled In";
- public new string text11 = "Name Cannot Be Empty";
- public new string text12 = "Saved Successfully";
- public new string text13 = "My";
- public new string text14 = "Connect";
- public new string text15 = "Connecting";
- public new string text16 = "Connected";
- public new string text17 = " Break ";
- public new string text18 = "Bow";
- public new string text19 = "Arrow";
- public new string text20 = "SetUp";
- public new string text21 = "Course";
- public new string text22 = "Shop";
- public new string text23 = "Device";
- public new string text24 = "Account:";
- public new string text25 = "Password:";
- public new string text26 = "Retrieve Password";
- public new string text27 = "New User Register";
- public new string text28 = "Account :";
- public new string text29 = "Password :";
- public new string text30 = "Confirm Password :";
- public new string text31 = "Nickname :";
- public new string text32 = "Gender :";
- public new string text33 = "Login";
- public new string text34 = "Phone :";
- public new string text35 = "Code :";
- public new string text36 = "Password :";
- public new string text37 = "Confirm Password :";
- public new string text38 = "Get";
- public new string text39 = "Account";
- public new string text40 = "Phone Number";
- public new string text41 = "Please Enter Account";
- public new string text42 = "Please Enter Password";
- public new string text43 = "Login Successful";
- public new string text44 = "Wrong Password";
- public new string text45 = "User Not Register";
- public new string text46 = "Account At Least 6 Digits";
- public new string text47 = "Password At Least 6 Digits";
- public new string text48 = "Two Passwords Are Inconsistent";
- public new string text49 = "Please Enter Nickname";
- public new string text50 = "Unable To Re Register";
- public new string text51 = "Register Successful";
- public new string text61 = "Please Connect Device";
- public new string text62 = "Close";
- public new string text63 = "Products";
- public new string text64 = "Bag";
- public new string text65 = "Equipped";
- public new string text66 = "Buy";
- public new string text67 = "Property";
- public new string text68 = "Difficulty : ";
- public new string text69 = "Device Course";
- public new string text70 = "Game Course";
- public new string text71 = "Select PFP";
- public new string text72 = "Player1";
- public new string text73 = "Player2";
- public new string text74 = "Start";
- public new string text87 = "Current Round Player";
- public new string text88 = "Continue";
- public new string text89 = "Home";
- public new string text90 = "Share";
- public new string text91 = "Again";
- public new string text92 = "PvP";
- public new string text93 = "Player";
- public new string text94 = "Select Range";
- public new string text95 = "Score:";
- public new string text96 = "New Player Guide";
- public new string text97 = "Back";
- public new string text98 = "Complete";
- public new string text99 = "Challenge";
- public new string text100 = "Limit";
- public new string text101 = "Rank";
- public new string text102 = "Game";
- public new string text103 = "Bind";
- public new string text104 = "Over";
- public new string text105 = "Win";
- public new string text106 = "Lose";
- public new string text107 = "SoldOut";
- public new string text108 = "Use";
- public new string text109 = "Inuse";
- public new string text110 = "Cancel";
- public new string text111 = "Multiple Mirrors Is Required";
- public new string text112 = "Shoot Card Is Required";
- public new string text113 = "Bow";
- public new string text114 = "Arrow";
- public new string text115 = "Round {0}";
- public new string text117 = "Limit {0}~{1} Bit, English And Figures";
- 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!";
- public new string text119 = "Limit {0}~{1} Bit, Can Use Chinese";
- //设备页面
- public new string text500 = "Gyr Init";
- public new string text501 = "Mag Init";
- public new string text502 = "ResetView";
- public new string text503 = "16G Acc";
- public new string text504 = "64G Acc";
- //主页面
- public new string text122 = "Rank";
- public new string text123 = "Friend";
- public new string text124 = "Start";
- public new string text125 = "Online";
- //我的
- public new string text126 = "ID :";
- //开始游戏
- public new string text133 = "Stand Alone";
- public new string text127 = "Hunting";
- public new string text128 = "Target";
- public new string text129 = "1 v 1";
- //PK模式选择页面
- public new string text132 = "Dart Game";
- public new string text130 = "TARGET";
- public new string text131 = "HUNTING";
- public new string text401 = "Select Level";
- //关卡选择
- public new string text134 = "Hunting";
- public new string text135 = "Hare";
- public new string text136 = "Pheasant";
- public new string text137 = "Wild Wolf";
- //设置页面
- public new string text302 = "BGM";
- public new string text303 = "Sound";
- public new string text304 = "Language";
- public new string text305 = "English";
- public new string text306 = "CrossHair";
- public new string text307 = "ON";
- public new string text308 = "OFF";
- public new string text309 = "ShootLevel";
- public new string text310 = "Easy";
- public new string text311 = "Normal";
- public new string text312 = "Hard";
- public new string text313 = "ArrowWeight";
- public new string text314 = "{0}Gram";
- //SetUpView1
- public new string text315 = "Game Settings";
- public new string text318 = "Novice Guidance";
- public new string text301 = "About Us";
- public new string text316 = "User Agreement";
- public new string text317 = "Privacy Policy";
- public new string text300 = "Quit Login";
- public new string text400 = "Quit Game";
- //设备校准页面
- public new string text76 = "ResetView";
- public new string text77 = "Back";
- public new string text78 = "Next";
- public new string text79 = "Complete";
- public new string text80 = "ResetView";
- public new string text81 = "Point the solid bow to the front, and then click \nthe angle of view to return to the front.";
- public new string text82 = "Calibrate";
- public new string text83 = "Stop";
- public new string text84 = "Try to rotate the module at multiple angles until \nmultiple points in the three quadrants of XYZ form a circle.";
- public new string text85 = "Calibrate";
- public new string text86 = "During calibration, the aiming module needs to be placed on the desktop.";
- public new string text116 = "Redo";
- public new string text120 = "The calibration effect is not ideal, please recalibrate!";
- public new string text121 = "Cancel";
- //游戏场景通用UI信息
- public new string text200 = "Tips";
- public new string text201 = "Scope";
- public new string text202 = "Acc";
- public new string text203 = "Aim Reset";
- public new string text204 = "Target";
- public new string text205 = "Close";
- // 游戏规则
- public new string text1000 = "Shoot as many arrows as you can at a fixed time.";
- public new string text1001 = "The total number of rings gradually increased, \nchallenging their own records.";
- public new string text2000 = "Two people arched in turn, using the rules of the Olympic Games PK.";
- public new string text2001 = "The maximum number of games is 5, 3 arrows in each game, \nshooting arrows alternately.";
- public new string text2002 = "The winner will get 2 points and 1 draw each. \nThe loser will not get points.";
- 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.";
- //道具名称
- public new string text101000 = "{0}X Mirrors";
- public new string text101001 = "{0}X Shoot";
- // 道具介绍
- public new string text111000 = "When shooting, the sight distance is enlarged by {0} times.";
- public new string text111001 = "In archery, the speed increases by {0} times.";
- //设备名称
- public new string text200000 = "Recurve Bow";
- public new string text201000 = "18 Pound Bow";
- public new string text201001 = "25 Pound Bow";
- public new string text201002 = "Carbon Giber Arrow";
- // 设备介绍
- public new string text211000 = "Special bow for Olympic Games.";
- public new string text211001 = "Special bow for Olympic Games.";
- public new string text211002 = "Special competition arrow for Olympic Games.";
- //审核时用到的临时文字-设置页面
- public new string text1234560 = "Base Settings";
- public new string text1234561 = "Quit App";
- public new string text1234562 = "Start";
- public new string text1234563 = "Online";
- }
|