public int Translate(out TranslatedMessage translatedMessage, string text, TranslateLanguage destinationLanguage, TranslateLanguage sourceLanguage = TranslateLanguage.None, TranslateType type = TranslateType.Chat, ProfanityType profanity = ProfanityType.Off, bool postProfanity = false, int timeout = 0) { return(Translate(out translatedMessage, text, GetTranslatedLanguage(destinationLanguage), GetTranslatedLanguage(sourceLanguage), type, profanity, postProfanity, timeout)); }
private Vector3 TranslateControl(TranslateType mode, ref float amount, bool multByTime) { GUIUnstrip.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label($"<color=cyan><b>{(m_localContext ? "Local " : "")}{mode}</b></color>:", new GUILayoutOption[] { GUILayout.Width(m_localContext ? 110 : 65) }); var transform = TargetGO.transform; switch (mode) { case TranslateType.Position: var pos = m_localContext ? transform.localPosition : transform.position; GUILayout.Label(pos.ToString(), new GUILayoutOption[] { GUILayout.Width(250) }); break; case TranslateType.Rotation: var rot = m_localContext ? transform.localEulerAngles : transform.eulerAngles; GUILayout.Label(rot.ToString(), new GUILayoutOption[] { GUILayout.Width(250) }); break; case TranslateType.Scale: GUILayout.Label(transform.localScale.ToString(), new GUILayoutOption[] { GUILayout.Width(250) }); break; } GUILayout.EndHorizontal(); Vector3 input = m_cachedInput[(int)mode]; GUIUnstrip.BeginHorizontal(new GUILayoutOption[0]); GUI.skin.label.alignment = TextAnchor.MiddleRight; GUILayout.Label("<color=cyan>X:</color>", new GUILayoutOption[] { GUILayout.Width(20) }); PlusMinusFloat(ref input.x, amount, multByTime); GUILayout.Label("<color=cyan>Y:</color>", new GUILayoutOption[] { GUILayout.Width(20) }); PlusMinusFloat(ref input.y, amount, multByTime); GUILayout.Label("<color=cyan>Z:</color>", new GUILayoutOption[] { GUILayout.Width(20) }); PlusMinusFloat(ref input.z, amount, multByTime); GUILayout.Label("+/-:", new GUILayoutOption[] { GUILayout.Width(30) }); var amountInput = amount.ToString("F3"); amountInput = GUIUnstrip.TextField(amountInput, new GUILayoutOption[] { GUILayout.Width(60) }); if (float.TryParse(amountInput, out float f)) { amount = f; } GUI.skin.label.alignment = TextAnchor.UpperLeft; GUILayout.EndHorizontal(); return(input); }
// 引导 public virtual Vector3[] Guide(Canvas canvas, RectTransform target, TranslateType translateType = TranslateType.Direct, float time = 1) { // 初始化材质 material = transform.GetComponent <Image>().material; this.target = target; if (target != null) { //获取中心点 target.GetWorldCorners(targetCorners); //把世界坐标 转成屏幕坐标 for (int i = 0; i < targetCorners.Length; i++) { targetCorners[i] = WorldToScreenPoint(canvas, targetCorners[i]); } // 计算中心点 center.x = targetCorners[0].x + (targetCorners[3].x - targetCorners[0].x) / 2; center.y = targetCorners[0].y + (targetCorners[1].y - targetCorners[0].y) / 2; Debug.Log("center x:" + center.x + "y:" + center.y); //center.x = //Debug.Log(" 移动类型: " + translateType); switch (translateType) { case TranslateType.Direct: // 设置中心点 material.SetVector("_Center", center); break; case TranslateType.Slow: startCenter = material.GetVector("_Center"); isMoving = true; centerTimer = 0; centerTime = time; break; } } else { center = Vector3.zero; targetCorners[0] = new Vector3(-2000, -2000, 0); targetCorners[1] = new Vector3(-2000, 2000, 0); targetCorners[2] = new Vector3(2000, 2000, 0); targetCorners[3] = new Vector3(2000, -2000, 0); } return(targetCorners); }
private float scaleHeight; // 动态变化的高 // 引导 public override Vector3[] Guide(Canvas canvas, RectTransform target, TranslateType translateType = TranslateType.Direct, float time = 1) { base.Guide(canvas, target, translateType, time); // 计算宽 和 高 width = (targetCorners[3].x - targetCorners[0].x) / 2; height = (targetCorners[1].y - targetCorners[0].y) / 2; material.SetFloat("_SliderX", width); material.SetFloat("_SliderY", height); return(targetCorners); }
private float scaleR; // 变化之后的半径大小 public override Vector3[] Guide(Canvas canvas, RectTransform target, TranslateType translateType = TranslateType.Direct, float moveTime = 1) { base.Guide(canvas, target, translateType, moveTime); float width = (targetCorners[3].x - targetCorners[0].x) / 2; float height = (targetCorners[1].y - targetCorners[0].y) / 2; // 计算半径 //r = Mathf.Sqrt( width * width + height * height); r = Mathf.Min(width, height); // this.material.SetFloat("_Slider", r); return(targetCorners); }
public Vector3[] Guide(Canvas canvas, RectTransform target, GuideType guideType, TranslateType translateType = TranslateType.Direct, float time = 1) { Guide(target, guideType); switch (guideType) { case GuideType.Rect: return(rectGuide.Guide(canvas, target, translateType, time)); case GuideType.Circle: return(circleGuide.Guide(canvas, target, translateType, time)); } return(null); }
/// <summary> /// /// </summary> /// <param name="text"></param> /// <param name="type"></param> /// <returns></returns> public static string Convert(string text, TranslateType type) { var dictionary = type == TranslateType.Gost ? GostDictionary : IsoDictionary; return(new string(text.Select(c => { var str = c.ToString(); var isLower = str.ToLower() == str; var key = dictionary.ContainsKey(c) ? c : str.ToUpper()[0]; var newString = dictionary.ContainsKey(key) ? dictionary[key] : str; return isLower ? newString.ToLower() : newString; }).SelectMany(i => i).ToArray())); }
private void OnGUI() { mTranslateType = (TranslateType)EditorGUILayout.EnumPopup("Type", mTranslateType); EditorGUILayout.BeginHorizontal(); EditorGUILayout.TextField("Target Folder", targetFolder); if (GUILayout.Button("Browser", GUILayout.Width(100))) { var newPath = EditorUtility.OpenFolderPanel("Select target folder", targetFolder, null); if (newPath.Contains(Application.dataPath)) { targetFolder = newPath.Replace(Application.dataPath, "Assets"); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.TextField("Resource Folder", resourceFolder); if (GUILayout.Button("Browser", GUILayout.Width(100))) { var newPath = EditorUtility.OpenFolderPanel("Select resource folder", resourceFolder, null); if (newPath.Contains(Application.dataPath)) { resourceFolder = newPath.Replace(Application.dataPath, "Assets"); } } EditorGUILayout.EndHorizontal(); if (mTranslateType == TranslateType.Sprite2Atlas) { EditorGUILayout.LabelField("Atlas Settings"); mSetting.maxAtlasSize = EditorGUILayout.IntPopup("Max Size", mSetting.maxAtlasSize, Array.ConvertAll(PackConst.AtlasSizeList, value => value.ToString()), PackConst.AtlasSizeList); mSetting.padding = EditorGUILayout.IntField("Padding", mSetting.padding); mSetting.isPOT = EditorGUILayout.Toggle("Power Of 2", mSetting.isPOT); GUI.enabled = mSetting.isPOT; if (!mSetting.isPOT) { mSetting.forceSquare = false; } mSetting.forceSquare = EditorGUILayout.Toggle("Force Square", mSetting.forceSquare); GUI.enabled = true; } if (GUILayout.Button("Pack", GUILayout.MaxWidth(200))) { SpriteRefCollector.Instance.Translate(targetFolder, mTranslateType == TranslateType.Sprite2Atlas, resourceFolder, mSetting); } }
public static async Task TranslateAsync(IPathManager pathManager, IDatabaseManager databaseManager, IPluginManager pluginManager, Site site, int channelId, int contentId, int targetSiteId, int targetChannelId, TranslateType translateType, ICreateManager createManager, int adminId) { if (site == null || channelId <= 0 || contentId <= 0 || targetSiteId <= 0 || targetChannelId <= 0) { return; } var targetSite = await databaseManager.SiteRepository.GetAsync(targetSiteId); var targetChannelInfo = await databaseManager.ChannelRepository.GetAsync(targetChannelId); var channel = await databaseManager.ChannelRepository.GetAsync(channelId); var contentInfo = await databaseManager.ContentRepository.GetAsync(site, channel, contentId); if (contentInfo == null) { return; } contentInfo = contentInfo.Clone <Content>(); if (translateType == TranslateType.Copy) { await pathManager.MoveFileByContentAsync(site, targetSite, contentInfo); contentInfo.SiteId = targetSiteId; contentInfo.SourceId = contentInfo.ChannelId; contentInfo.ChannelId = targetChannelId; contentInfo.Taxis = 0; var theContentId = await databaseManager.ContentRepository.InsertAsync(targetSite, targetChannelInfo, contentInfo); var handlers = pluginManager.GetExtensions <PluginContentHandler>(); foreach (var handler in handlers) { try { handler.OnTranslated(site.Id, channel.Id, contentId, targetSiteId, targetChannelId, theContentId); await handler.OnTranslatedAsync(site.Id, channel.Id, contentId, targetSiteId, targetChannelId, theContentId); } catch (Exception ex) { await databaseManager.ErrorLogRepository.AddErrorLogAsync(ex); } } //foreach (var plugin in oldPluginManager.GetPlugins()) //{ // try // { // plugin.OnContentTranslateCompleted(new ContentTranslateEventArgs(site.Id, channel.Id, contentId, targetSiteId, targetChannelId, theContentId)); // } // catch (Exception ex) // { // await databaseManager.ErrorLogRepository.AddErrorLogAsync(plugin.PluginId, ex, nameof(plugin.OnContentTranslateCompleted)); // } //} await createManager.CreateContentAsync(targetSite.Id, contentInfo.ChannelId, theContentId); await createManager.TriggerContentChangedEventAsync(targetSite.Id, contentInfo.ChannelId); } else if (translateType == TranslateType.Cut) { await pathManager.MoveFileByContentAsync(site, targetSite, contentInfo); contentInfo.SiteId = targetSiteId; contentInfo.SourceId = contentInfo.ChannelId; contentInfo.ChannelId = targetChannelId; contentInfo.Taxis = 0; var newContentId = await databaseManager.ContentRepository.InsertAsync(targetSite, targetChannelInfo, contentInfo); var handlers = pluginManager.GetExtensions <PluginContentHandler>(); foreach (var handler in handlers) { try { handler.OnTranslated(site.Id, channel.Id, contentId, targetSiteId, targetChannelId, newContentId); await handler.OnTranslatedAsync(site.Id, channel.Id, contentId, targetSiteId, targetChannelId, newContentId); } catch (Exception ex) { await databaseManager.ErrorLogRepository.AddErrorLogAsync(ex); } } //foreach (var plugin in oldPluginManager.GetPlugins()) //{ // try // { // plugin.OnContentTranslateCompleted(new ContentTranslateEventArgs(site.Id, channel.Id, contentId, targetSiteId, targetChannelId, newContentId)); // } // catch (Exception ex) // { // await databaseManager.ErrorLogRepository.AddErrorLogAsync(plugin.PluginId, ex, nameof(plugin.OnContentTranslateCompleted)); // } //} await databaseManager.ContentRepository.TrashContentAsync(site, channel, contentId, adminId); //await databaseManager.ContentRepository.DeleteAsync(oldPluginManager, pluginManager, site, channel, contentId); //GlobalSettings.ContentRepository.DeleteContents(site.Id, tableName, TranslateUtils.ToIntList(contentId), channelId); await createManager.CreateContentAsync(targetSite.Id, contentInfo.ChannelId, newContentId); await createManager.TriggerContentChangedEventAsync(targetSite.Id, contentInfo.ChannelId); } else if (translateType == TranslateType.Reference) { if (contentInfo.ReferenceId != 0) { return; } contentInfo.SiteId = targetSiteId; contentInfo.SourceId = contentInfo.ChannelId; contentInfo.ChannelId = targetChannelId; contentInfo.ReferenceId = contentId; contentInfo.Taxis = 0; int theContentId = await databaseManager.ContentRepository.InsertAsync(targetSite, targetChannelInfo, contentInfo); await createManager.CreateContentAsync(targetSite.Id, contentInfo.ChannelId, theContentId); await createManager.TriggerContentChangedEventAsync(targetSite.Id, contentInfo.ChannelId); } }
public void Guide(Canvas canvas, RectTransform target, GuideType guideType, float scale, float time, TranslateType translateType = TranslateType.Direct, float moveTime = 1) { Guide(target, guideType); switch (guideType) { case GuideType.Rect: rectGuide.Guide(canvas, target, scale, time, translateType, moveTime); break; case GuideType.Circle: circleGuide.Guide(canvas, target, scale, time, translateType, moveTime); break; } }
private int Translate(out TranslatedMessage translatedMessage, string text, string destinationLanguage, string sourceLanguage = "", TranslateType type = TranslateType.Chat, ProfanityType profanity = ProfanityType.Off, bool postProfanity = false, int timeout = 0) { translatedMessage = null; TCPClient client = GetCoreClient(); if (client == null) { return(fpnn.ErrorCode.FPNN_EC_CORE_INVALID_CONNECTION); } Quest quest = new Quest("translate"); quest.Param("text", text); quest.Param("dst", destinationLanguage); if (sourceLanguage.Length > 0) { quest.Param("src", sourceLanguage); } if (type == TranslateType.Mail) { quest.Param("type", "mail"); } else { quest.Param("type", "chat"); } switch (profanity) { case ProfanityType.Stop: quest.Param("profanity", "stop"); break; case ProfanityType.Censor: quest.Param("profanity", "censor"); break; case ProfanityType.Off: quest.Param("profanity", "off"); break; } quest.Param("postProfanity", postProfanity); Answer answer = client.SendQuest(quest, timeout); if (answer.IsException()) { return(answer.ErrorCode()); } try { translatedMessage = new TranslatedMessage { source = answer.Want <string>("source"), target = answer.Want <string>("target"), sourceText = answer.Want <string>("sourceText"), targetText = answer.Want <string>("targetText") }; return(fpnn.ErrorCode.FPNN_EC_OK); } catch (Exception) { return(fpnn.ErrorCode.FPNN_EC_CORE_INVALID_PACKAGE); } }
/// <summary> /// Represents the HTML attribute "translate". /// </summary> /// <param name="value">The value.</param> /// <returns>The same instance of <see cref="Hex.AttributeBuilders.HtmlAttributeBuilder"/>.</returns> public HtmlAttributeBuilder Translate( TranslateType value ) { this.Attributes[ HtmlAttributes.Translate ] = value.ToLowerString(); return this; }
public virtual void Guide(Canvas canvas, RectTransform target, float scale, float time, TranslateType translateType = TranslateType.Direct, float moveTime = 1) { }
public override void Guide(Canvas canvas, RectTransform target, float scale, float time, TranslateType translateType = TranslateType.Direct, float moveTime = 1) { this.Guide(canvas, target, translateType, moveTime); scaleWidth = width * scale; scaleHeight = height * scale; isScaling = true; scaleTimer = 0; this.scaleTime = time; }
public override void Guide(Canvas canvas, RectTransform target, float scale, float time, TranslateType translateType = TranslateType.Direct, float moveTime = 1) { //base.Guide(canvas, target, scale, time); this.Guide(canvas, target, translateType, moveTime); scaleR = r * scale; this.material.SetFloat("_Slider", scaleR); this.scaleTime = time; isScaling = true; scaleTimer = 0; }
private static void LoadTranslate(TranslateType TranslateType) { var Filename = Path.Combine( Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "Translations", TranslateType.ToString() + ".xml" ); if (!File.Exists(Filename)) { return; } XmlDocument xml = new XmlDocument(); XmlNodeList nodes; try { xml.Load(Filename); } catch { return; } switch (TranslateType) { case TranslateType.ShipTypes: Translator.ShipTypeTable.Clear(); nodes = xml.SelectNodes("/ShipTypes/Type"); foreach (XmlNode node in nodes) { try { int id; if (!int.TryParse(node["ID"].InnerText, out id)) { continue; } Translator.ShipTypeTable.AddOrUpdate(id, node["Value"].InnerText, (a, b) => b); } catch { } } break; case TranslateType.ShipNames: Translator.ShipNameTable.Clear(); nodes = xml.SelectNodes("/Ships/Ship"); foreach (XmlNode node in nodes) { try { Translator.ShipNameTable.AddOrUpdate(node["Source"].InnerText, node["Value"].InnerText, (a, b) => b); } catch { } } break; case TranslateType.SlotItemTypes: Translator.SlotItemTypeTable.Clear(); nodes = xml.SelectNodes("/SlotItemTypes/SlotItemType"); foreach (XmlNode node in nodes) { try { Translator.SlotItemTypeTable.AddOrUpdate(node["Source"].InnerText, node["Value"].InnerText, (a, b) => b); } catch { } } break; case TranslateType.SlotItems: Translator.SlotItemTable.Clear(); nodes = xml.SelectNodes("/SlotItems/SlotItem"); foreach (XmlNode node in nodes) { try { Translator.SlotItemTable.AddOrUpdate(node["Source"].InnerText, node["Value"].InnerText, (a, b) => b); } catch { } } break; case TranslateType.Quests: Translator.QuestNameTable.Clear(); Translator.QuestDetailTable.Clear(); Translator.QuestIdTable.Clear(); nodes = xml.SelectNodes("/Quests/Quest"); foreach (XmlNode node in nodes) { if (node["NameSource"] != null && node["NameValue"] != null) { try { Translator.QuestNameTable.AddOrUpdate(node["NameSource"].InnerText, node["NameValue"].InnerText, (a, b) => b); } catch { } } if (node["DetailSource"] != null && node["DetailValue"] != null) { try { Translator.QuestDetailTable.AddOrUpdate(node["DetailSource"].InnerText, node["DetailValue"].InnerText, (a, b) => b); } catch { } } if (node["ID"] != null && node["NameValue"] != null && node["DetailValue"] != null) { try { Translator.QuestIdTable.AddOrUpdate( node["ID"].InnerText, new QuestNameDetail { Name = node["NameValue"].InnerText, Detail = node["DetailValue"].InnerText }, (a, b) => b ); } catch { } } } break; case TranslateType.Operations: Translator.OperationTable.Clear(); nodes = xml.SelectNodes("/Operations/Map"); foreach (XmlNode node in nodes) { try { Translator.OperationTable.AddOrUpdate(node["Source"].InnerText, node["Value"].InnerText, (a, b) => b); } catch { } } break; } }
//-- Action<TranslatedMessage, errorCode> private bool Translate(Action <TranslatedMessage, int> callback, string text, string destinationLanguage, string sourceLanguage = "", TranslateType type = TranslateType.Chat, ProfanityType profanity = ProfanityType.Off, bool postProfanity = false, int timeout = 0) { TCPClient client = GetCoreClient(); if (client == null) { return(false); } Quest quest = new Quest("translate"); quest.Param("text", text); quest.Param("dst", destinationLanguage); if (sourceLanguage.Length > 0) { quest.Param("src", sourceLanguage); } if (type == TranslateType.Mail) { quest.Param("type", "mail"); } else { quest.Param("type", "chat"); } switch (profanity) { case ProfanityType.Stop: quest.Param("profanity", "stop"); break; case ProfanityType.Censor: quest.Param("profanity", "censor"); break; case ProfanityType.Off: quest.Param("profanity", "off"); break; } quest.Param("postProfanity", postProfanity); return(client.SendQuest(quest, (Answer answer, int errorCode) => { TranslatedMessage tm = null; if (errorCode == fpnn.ErrorCode.FPNN_EC_OK) { try { tm = new TranslatedMessage(); tm.source = answer.Want <string>("source"); tm.target = answer.Want <string>("target"); tm.sourceText = answer.Want <string>("sourceText"); tm.targetText = answer.Want <string>("targetText"); } catch (Exception) { errorCode = fpnn.ErrorCode.FPNN_EC_CORE_INVALID_PACKAGE; } } callback(tm, errorCode); }, timeout)); }
// everything is enclosed var myType = typeof(Enclosed <>).MakeGenericType(TranslateType(member.Key.Type));